diff --git a/src/lib.rs b/src/lib.rs index 56368a2..2f4611b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -386,20 +386,23 @@ fn process_document( }; // Parse structure tree for tagged PDFs (reuses the loaded document) - let struct_roles = structure_tree::StructTree::from_doc(&doc).and_then(|tree| { - let page_ids = doc.get_pages(); - let roles = tree.mcid_to_roles(&page_ids); - if roles.is_empty() { - None - } else { - log::debug!( - "structure tree: {} pages with MCID roles, {} total MCIDs", - roles.len(), - tree.mcid_count() - ); - Some(roles) - } - }); + let (struct_roles, struct_tables) = structure_tree::StructTree::from_doc(&doc) + .map(|tree| { + let page_ids = doc.get_pages(); + let roles = tree.mcid_to_roles(&page_ids); + let tables = tree.extract_tables(&page_ids); + if !roles.is_empty() { + log::debug!( + "structure tree: {} pages with MCID roles, {} total MCIDs, {} tagged tables", + roles.len(), + tree.mcid_count(), + tables.len() + ); + } + let roles = if roles.is_empty() { None } else { Some(roles) }; + (roles, tables) + }) + .unwrap_or((None, Vec::new())); let (markdown, layout, has_encoding_issues, gid_pages) = match extracted { Some(((items, rects, lines), page_thresholds, gid_encoded_pages)) => { @@ -463,6 +466,7 @@ fn process_document( &lines, &page_thresholds, struct_roles.as_ref(), + &struct_tables, )) }; diff --git a/src/markdown/mod.rs b/src/markdown/mod.rs index 0a1ab1c..e1e3d3e 100644 --- a/src/markdown/mod.rs +++ b/src/markdown/mod.rs @@ -497,7 +497,15 @@ pub fn to_markdown_from_items_with_rects( options: MarkdownOptions, rects: &[crate::types::PdfRect], ) -> String { - to_markdown_from_items_with_rects_and_lines(items, options, rects, &[], &HashMap::new(), None) + to_markdown_from_items_with_rects_and_lines( + items, + options, + rects, + &[], + &HashMap::new(), + None, + &[], + ) } /// Convert positioned text items to markdown, using rectangles and line segments for table detection. @@ -511,10 +519,11 @@ pub(crate) fn to_markdown_from_items_with_rects_and_lines( pdf_lines: &[crate::types::PdfLine], page_thresholds: &HashMap, struct_roles: Option<&HashMap>>, + struct_tables: &[crate::structure_tree::StructTable], ) -> String { use crate::tables::{ - detect_tables, detect_tables_from_lines, detect_tables_from_rects, table_to_markdown, - try_build_rect_guided_table, + detect_tables, detect_tables_from_lines, detect_tables_from_rects, + detect_tables_from_struct_tree, table_to_markdown, try_build_rect_guided_table, }; use crate::types::ItemType; @@ -648,6 +657,27 @@ pub(crate) fn to_markdown_from_items_with_rects_and_lines( // Track which band-local indices are claimed by structural detection let mut rect_claimed: HashSet = HashSet::new(); + // 0. Structure-tree detection (highest priority — semantic PDF tagging) + if !struct_tables.is_empty() { + let st_tables = detect_tables_from_struct_tree(band_items, struct_tables, page); + for table in &st_tables { + for &idx in &table.item_indices { + rect_claimed.insert(idx); + if let Some(&page_idx) = band_index_map.get(idx) { + if let Some(&(global_idx, _)) = group.get(page_idx) { + table_items.insert(global_idx); + } + } + } + let table_y = table.rows.first().copied().unwrap_or(0.0); + let table_md = table_to_markdown(table); + page_tables + .entry(page) + .or_default() + .push((table_y, table_md)); + } + } + // 1. Rect-based detection first (well-tested, high precision) let (rect_tables, hint_regions) = detect_tables_from_rects(band_items, band_rects, page); diff --git a/src/structure_tree.rs b/src/structure_tree.rs index d7e440a..fa40110 100644 --- a/src/structure_tree.rs +++ b/src/structure_tree.rs @@ -273,6 +273,111 @@ impl StructTree { flatten_recursive(&self.children, &mut out, 0); out } + + /// Extract table structures from the tagged PDF tree. + /// + /// Walks the tree to find `/Table` elements with `/TR` > `/TD|TH` children, + /// collecting MCIDs at each cell. Returns structured descriptors that can + /// be matched against extracted [`TextItem`]s to build tables without + /// relying on geometry-based detection. + pub fn extract_tables( + &self, + page_ids: &std::collections::BTreeMap, + ) -> Vec { + let obj_to_page: HashMap = + page_ids.iter().map(|(&num, &id)| (id, num)).collect(); + let mut tables = Vec::new(); + collect_tables(&self.children, &obj_to_page, &mut tables); + tables + } +} + +// ─── Tagged table structures ──────────────────────────────────────── + +/// A table cell extracted from the structure tree. +#[derive(Debug, Clone)] +pub struct StructTableCell { + /// Whether this cell is a header cell (`/TH`). + pub is_header: bool, + /// MCIDs with their resolved page numbers. + pub mcids: Vec<(i64, u32)>, +} + +/// A table row extracted from the structure tree. +#[derive(Debug, Clone)] +pub struct StructTableRow { + pub cells: Vec, +} + +/// A complete table extracted from the structure tree. +#[derive(Debug, Clone)] +pub struct StructTable { + pub rows: Vec, +} + +fn collect_tables( + elements: &[StructElement], + obj_to_page: &HashMap, + tables: &mut Vec, +) { + for elem in elements { + if elem.role == StructRole::Table { + let mut rows = Vec::new(); + collect_rows(&elem.children, obj_to_page, &mut rows); + if rows.len() >= 2 && rows.iter().any(|r| !r.cells.is_empty()) { + tables.push(StructTable { rows }); + } + } else { + collect_tables(&elem.children, obj_to_page, tables); + } + } +} + +/// Collect rows from Table children, transparently descending through +/// THead/TBody/TFoot grouping elements. +fn collect_rows( + elements: &[StructElement], + obj_to_page: &HashMap, + rows: &mut Vec, +) { + for elem in elements { + match elem.role { + StructRole::TR => { + let mut cells = Vec::new(); + for child in &elem.children { + if child.role == StructRole::TD || child.role == StructRole::TH { + let is_header = child.role == StructRole::TH; + let mut mcids = Vec::new(); + collect_mcids_recursive(child, obj_to_page, &mut mcids); + cells.push(StructTableCell { is_header, mcids }); + } + } + rows.push(StructTableRow { cells }); + } + StructRole::THead | StructRole::TBody | StructRole::TFoot => { + collect_rows(&elem.children, obj_to_page, rows); + } + _ => {} + } + } +} + +/// Recursively collect all MCIDs from an element and its descendants. +fn collect_mcids_recursive( + elem: &StructElement, + obj_to_page: &HashMap, + mcids: &mut Vec<(i64, u32)>, +) { + for mcref in &elem.content_refs { + if let Some(page_id) = mcref.page_id { + if let Some(&page_num) = obj_to_page.get(&page_id) { + mcids.push((mcref.mcid, page_num)); + } + } + } + for child in &elem.children { + collect_mcids_recursive(child, obj_to_page, mcids); + } } /// A flattened view of a structure element for linear traversal. diff --git a/src/tables/detect_struct.rs b/src/tables/detect_struct.rs new file mode 100644 index 0000000..d573257 --- /dev/null +++ b/src/tables/detect_struct.rs @@ -0,0 +1,354 @@ +//! Structure-tree-based table detection. +//! +//! When a PDF has a well-formed structure tree with `/Table` > `/TR` > `/TD|TH` +//! elements linked to MCIDs, this module builds `Table` structs directly from +//! the semantic hierarchy — no geometry heuristics needed. + +use std::collections::HashMap; + +use crate::structure_tree::StructTable; +use crate::types::TextItem; + +use super::Table; + +/// Build tables from structure-tree table descriptors by matching MCIDs to TextItems. +/// +/// Returns tables for the given page. Tables where fewer than 50% of cells +/// resolve to TextItems are rejected (stale or broken structure tree). +pub fn detect_tables_from_struct_tree( + items: &[TextItem], + struct_tables: &[StructTable], + page: u32, +) -> Vec { + if struct_tables.is_empty() { + return Vec::new(); + } + + // Build MCID → item indices for this page + let mut mcid_to_items: HashMap> = HashMap::new(); + for (idx, item) in items.iter().enumerate() { + if item.page == page { + if let Some(mcid) = item.mcid { + mcid_to_items.entry(mcid).or_default().push(idx); + } + } + } + + let mut tables = Vec::new(); + + for st in struct_tables { + // Filter rows to this page + let page_rows: Vec<_> = st + .rows + .iter() + .filter(|row| { + row.cells + .iter() + .any(|cell| cell.mcids.iter().any(|&(_, p)| p == page)) + }) + .collect(); + + if page_rows.len() < 2 { + continue; + } + + // Determine column count from max cells per row + let num_cols = page_rows.iter().map(|r| r.cells.len()).max().unwrap_or(0); + if num_cols < 2 { + continue; + } + + // Build cell text and collect item indices + let mut cells: Vec> = Vec::new(); + let mut all_item_indices: Vec = Vec::new(); + let mut total_cells = 0u32; + let mut matched_cells = 0u32; + + for row in &page_rows { + let mut row_cells = Vec::with_capacity(num_cols); + for (col_idx, cell) in row.cells.iter().enumerate() { + if col_idx >= num_cols { + break; + } + total_cells += 1; + + // Collect all items for this cell's MCIDs + let mut cell_items: Vec<(usize, &TextItem)> = Vec::new(); + for &(mcid, p) in &cell.mcids { + if p == page { + if let Some(indices) = mcid_to_items.get(&mcid) { + for &idx in indices { + cell_items.push((idx, &items[idx])); + } + } + } + } + + if !cell_items.is_empty() { + matched_cells += 1; + } + + // Sort by Y (descending = top-to-bottom) then X + cell_items.sort_by(|a, b| { + b.1.y + .partial_cmp(&a.1.y) + .unwrap_or(std::cmp::Ordering::Equal) + .then( + a.1.x + .partial_cmp(&b.1.x) + .unwrap_or(std::cmp::Ordering::Equal), + ) + }); + + let text: String = cell_items + .iter() + .map(|(_, item)| item.text.as_str()) + .collect::>() + .join(" "); + + for (idx, _) in &cell_items { + all_item_indices.push(*idx); + } + + row_cells.push(text); + } + + // Pad to num_cols + while row_cells.len() < num_cols { + row_cells.push(String::new()); + } + cells.push(row_cells); + } + + // Reject if too few cells matched (stale structure tree) + if total_cells == 0 || (matched_cells as f32 / total_cells as f32) < 0.3 { + continue; + } + + // Derive row/column positions from item geometry + let mut row_positions: Vec = Vec::new(); + for row in &page_rows { + let y = row + .cells + .iter() + .flat_map(|c| c.mcids.iter()) + .filter(|(_, p)| *p == page) + .filter_map(|(mcid, _)| mcid_to_items.get(mcid)) + .flatten() + .map(|&idx| items[idx].y) + .reduce(f32::max) + .unwrap_or(0.0); + row_positions.push(y); + } + + // Column positions: use X positions of first non-empty cell in each column + let mut col_positions: Vec = vec![0.0; num_cols]; + for (col, col_pos) in col_positions.iter_mut().enumerate() { + for row in &page_rows { + if col < row.cells.len() { + if let Some(x) = row.cells[col] + .mcids + .iter() + .filter(|(_, p)| *p == page) + .filter_map(|(mcid, _)| mcid_to_items.get(mcid)) + .flatten() + .map(|&idx| items[idx].x) + .reduce(f32::min) + { + *col_pos = x; + break; + } + } + } + } + + all_item_indices.sort_unstable(); + all_item_indices.dedup(); + + tables.push(Table { + columns: col_positions, + rows: row_positions, + cells, + item_indices: all_item_indices, + }); + } + + tables +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::structure_tree::{StructTableCell, StructTableRow}; + use crate::types::ItemType; + + fn make_item(text: &str, x: f32, y: f32, page: u32, mcid: Option) -> TextItem { + TextItem { + text: text.to_string(), + x, + y, + width: text.len() as f32 * 5.0, + height: 10.0, + font: "Test".to_string(), + font_size: 10.0, + page, + is_bold: false, + is_italic: false, + item_type: ItemType::Text, + mcid, + } + } + + #[test] + fn basic_struct_table() { + let items = vec![ + make_item("Name", 50.0, 700.0, 1, Some(10)), + make_item("Age", 200.0, 700.0, 1, Some(11)), + make_item("Alice", 50.0, 680.0, 1, Some(20)), + make_item("30", 200.0, 680.0, 1, Some(21)), + make_item("Bob", 50.0, 660.0, 1, Some(30)), + make_item("25", 200.0, 660.0, 1, Some(31)), + ]; + + let struct_tables = vec![StructTable { + rows: vec![ + StructTableRow { + cells: vec![ + StructTableCell { + is_header: true, + mcids: vec![(10, 1)], + }, + StructTableCell { + is_header: true, + mcids: vec![(11, 1)], + }, + ], + }, + StructTableRow { + cells: vec![ + StructTableCell { + is_header: false, + mcids: vec![(20, 1)], + }, + StructTableCell { + is_header: false, + mcids: vec![(21, 1)], + }, + ], + }, + StructTableRow { + cells: vec![ + StructTableCell { + is_header: false, + mcids: vec![(30, 1)], + }, + StructTableCell { + is_header: false, + mcids: vec![(31, 1)], + }, + ], + }, + ], + }]; + + let tables = detect_tables_from_struct_tree(&items, &struct_tables, 1); + assert_eq!(tables.len(), 1); + let table = &tables[0]; + assert_eq!(table.cells.len(), 3); + assert_eq!(table.cells[0], vec!["Name", "Age"]); + assert_eq!(table.cells[1], vec!["Alice", "30"]); + assert_eq!(table.cells[2], vec!["Bob", "25"]); + assert_eq!(table.item_indices.len(), 6); + } + + #[test] + fn rejects_low_mcid_coverage() { + // Items have no MCIDs matching the struct table + let items = vec![ + make_item("Orphan", 50.0, 700.0, 1, Some(999)), + make_item("Text", 200.0, 700.0, 1, None), + ]; + + let struct_tables = vec![StructTable { + rows: vec![ + StructTableRow { + cells: vec![ + StructTableCell { + is_header: false, + mcids: vec![(10, 1)], + }, + StructTableCell { + is_header: false, + mcids: vec![(11, 1)], + }, + ], + }, + StructTableRow { + cells: vec![ + StructTableCell { + is_header: false, + mcids: vec![(20, 1)], + }, + StructTableCell { + is_header: false, + mcids: vec![(21, 1)], + }, + ], + }, + ], + }]; + + let tables = detect_tables_from_struct_tree(&items, &struct_tables, 1); + assert!( + tables.is_empty(), + "should reject table with no MCID matches" + ); + } + + #[test] + fn filters_by_page() { + let items = vec![ + make_item("A", 50.0, 700.0, 2, Some(10)), + make_item("B", 200.0, 700.0, 2, Some(11)), + make_item("C", 50.0, 680.0, 2, Some(20)), + make_item("D", 200.0, 680.0, 2, Some(21)), + ]; + + let struct_tables = vec![StructTable { + rows: vec![ + StructTableRow { + cells: vec![ + StructTableCell { + is_header: false, + mcids: vec![(10, 2)], + }, + StructTableCell { + is_header: false, + mcids: vec![(11, 2)], + }, + ], + }, + StructTableRow { + cells: vec![ + StructTableCell { + is_header: false, + mcids: vec![(20, 2)], + }, + StructTableCell { + is_header: false, + mcids: vec![(21, 2)], + }, + ], + }, + ], + }]; + + // Page 1 should find nothing + let tables = detect_tables_from_struct_tree(&items, &struct_tables, 1); + assert!(tables.is_empty()); + + // Page 2 should find the table + let tables = detect_tables_from_struct_tree(&items, &struct_tables, 2); + assert_eq!(tables.len(), 1); + } +} diff --git a/src/tables/mod.rs b/src/tables/mod.rs index 4b7c79f..ece5e81 100644 --- a/src/tables/mod.rs +++ b/src/tables/mod.rs @@ -5,6 +5,7 @@ mod detect_heuristic; mod detect_lines; mod detect_rects; +mod detect_struct; mod financial; mod format; mod grid; @@ -13,6 +14,7 @@ pub use detect_heuristic::detect_tables; pub use detect_lines::detect_tables_from_lines; pub(crate) use detect_rects::cluster_rects; pub use detect_rects::{detect_tables_from_rects, RectHintRegion}; +pub use detect_struct::detect_tables_from_struct_tree; pub use format::table_to_markdown; use crate::types::TextItem; diff --git a/tests/snapshots/2013-app2.md b/tests/snapshots/2013-app2.md index ace09ee..e3850c7 100644 --- a/tests/snapshots/2013-app2.md +++ b/tests/snapshots/2013-app2.md @@ -1,3 +1,50 @@ +|Date|Procurement Title|PE|Bidder|Amount|| +|---|---|---|---|---|---| +|JAN|||||| +|1|8/1|Procurement of Criticals Spare Parts for Engine Maintenance on Mahe|PUC|Wartsila Eastern Africa Ltd|Euro97,922.30| +|2|8/1|Procurement of Criticals Spare Parts for Caterpillar Engine on Praslin|PUC|Wartsila Eastern Africa Ltd|Euro270,982.90| +|3|15/1|Manufacturing and Deliveries of 900 Students Desks|MOE|SPR Richard, Building & Furniture Contractor Pty LtdSR1,080,000.00|| +|4|15/1|Renovation Works at Mont Fleuri Secondary School|MOE|Sai-Fu Enterprise|SR2,815,771.00| +|5|15/1|La Gogue to Mont Simpson Raw Water Transfer|PUC|Vijay Construction|SR7,816,058.00| +|6|15/1|Storm Water Channel Project at Au Cap-Additional Works|DOE|United Concrete Products (Sey)Ltd|SR184,300.00| +|7|22/1|Procurement of Security at ex-Maritime Training Centre|SFA|Elite Surveillance Security Agency|SR30,000.00| +|8|22/1|Installation of Sewerage Treatment Plant at Anse Gaulette|MLUH|Green Island Construction Compnay|SR4,524,884.85| +|9|29/1|Procurement of Cylinder Liner|PUC|Wartsila Eastern Africa Ltd|Euro28,186.75| +|10|29/1|Procurement of Service Pack for Coupling|PUC|Wartsila Eastern Africa Ltd|Euro11,151.00| +|11|29/1|Construction of Drainage for Roads A & B Eve Island Praslin|MLUH|Ascent Projects Sey|SR2,931,174.00| +|12|29/1|Procurement of Electric Cables for Perseverance Infrastructure-Variations|PUC|Indian Ocean Export Company Pty Ltd|USD768.12| +|FEB|||||| +|13|5/2|Procurement of DI Pipes and Fittings for Le Rocher Refurbishment|PUC|Legend General Supply|USD43,807.50| +|14|5/2|Procurement of Bearings for ABB Turbo Charger|PUC|ABB France|EURO 28,966.15| +|15|5/2|Procurement of Alfa Laval Separator Spares|PUC|ALFA LAVAL (Pty) Ltd|Euro 41,191,30| +|16|5/2|constraction of 6*2 bedroom Houses- Mont Buxton|MLUH|O-NIVO Construction|SR3,688,844.00| +|17|5/2|Procurement of Critical Spares frr Major Overhaul-Set A41 PUC|PUC|Wartsila Eastern Africa Ltd|EURO 104,880.10| +|18|5/2|Procurement of Vehcile x1|MOE|Abhaye Valabhji Pty Ltd|SR 650,000.00| +|19|5/2|Procurement of Vehicle x1|SBFA|Abhaye Valabhji Pty Ltd|SR 585,000.00| +|20|12/2|Procurement of Turbo charger Rotor for Engine on Praslin|PUC|Marine Power International FZC|Euro 835,669.00| +|21|12/2|Procurement of Critical Spares for Genset M4 Major Overhaul on Praslin|PUC|Overseae Tractor S.A|USD 20,546.12| +|22|12/2|Procurement of Air Cooler Cartridge for Wartsila Engine|PUC|Marine Power International FZC|Euro 36,508.93| +|23|12/2|Procurement of Spares for Genset 8P on Praslin|PUC|Wartsila Eastern Africa Ltd|Euro 288,202.50| +|24|19/2|Construction of Stone Masonry Retaining Wall at Jean Larue Road, Takamaka|SLTA|Esparon's Enterprise|SR 1,105,069.00| +|25|19/2|Procurement of Non Critical Spares for Wartsila Engine at Power Station C- Engine Set A41|PUC|Marine Power International|Euro 144,726.26| +|26|19/2|Procurement of Non Critical Spares for Wartsila Engine at Power Station C- Engine Set A31|PUC|Marine Power International FZC|Euro 143,746.75| +|27|19/2|Procurement of Critical Spares for Wartsila Engine-Engine Set B11|PUC|Marine Power International FZC|Euro 44,089.42| +|28|26/2|Procurement for Vehcile x 2|Judiciary|PMC Auto|SR1,349,551.00| +|29|26/2|Procurement of Safety Spare Patrs for 8MW Engines - (safety Spares)|PUC|Wartsila Eastern Africa Ltd|Euro 202,898.40| +|30|26/2|Procurement of Safety Spare Patrs for 8MW Engines - (Turbo)|PUC|ABB France|Euro 132,833.33| +|MAR|||||| +|31|5/3|Procurement of Spare Parts for the Asphalt Plant- Petite Paris|SLTA|Astec Factory (USA)|USD 101,337.81| +|32|5/3|Procurement of Non-Critical Spare Parts for Wartsila Engines|PUC|Marine Power International FZC|Euro 44,050.00| +|33|5/3|Procurement of Non-Critical Spare Parts for Wartsila Engines B11|PUC|Marine Power International FZC|Euro 98,743.00| +|34|5/3|Procurement of Non-Critical Spare Parts for Wartsila Engines 8B|PUC|Marine Power International FZC|Euro 103,215.00| +|35|5/3|Procurement of Critical Spare Parts for Wartsila Engines 8B|PUC|Wartsila Global Logistic|Euro 97,979.10| +|36|5/3|Procurement Spare Parts for the 8MW Engines|PUC|Wartsila Global Logistic|Euro 41,444.00| +|37|5/3|Procurement of Voltage Districbution Boxes and Fuses-Variations|PUC|Indian Ocean Export Company Pty Ltd|GBP1,300.00| +|38|5/3|33Kv South Mahe Project-Variations|PUC|United Concrete Products (Sey)Ltd|SR459,684.00| +|39|5/3|construction of New Fire Station Fuel Store Bin Site and Boundary Wall- la Digue-Variations|SFRS|Furui Construction Pty Ltd|SR184,836.03| +|40|5/3|Provision of Utilities and Infrastructture on Ile Preseverance- Extention of Consulancy Services|MLHU|GIBB ( Mauritius)|USD138,050.00| +|41|12/3|Procurement of Uniform Materials for Primary, Secondary and Post Secondary Schools|MOE|Lot 1 Roy & Sons Import|SR 396,000.00| + ||Date|Procurement Title|PE|Bidder|Amount| |---|---|---|---|---|---| ||JAN||||| @@ -45,6 +92,57 @@ |40|5/3|Provision of Utilities and Infrastructture on Ile Preseverance- Extention of Consulancy Services|MLHU|GIBB ( Mauritius)|USD138,050.00| |41|12/3|Procurement of Uniform Materials for Primary, Secondary and Post Secondary Schools|MOE|Lot 1 Roy & Sons Import|SR 396,000.00| ||||||1| + +|41|12/3|Procurement of Uniform Materials for Primary, Secondary and Post Secondary Schools|MOE|Lot 2 Roy & Sons Import|SR 359,200.00| +|---|---|---|---|---|---| +|41|12/3|Procurement of Uniform Materials fro Primary, Secondary and Post Secondary Schools|MOE|Lot 3 Roy & Sons Import|SR650,000.00| +|41|12/3|Procurement of Uniform Materials for Primary, Secondary and Post Secondary Schools|MOE|Lot 4 HIS & PJ Enterprise|SR 1,753,614.70| +|41|12/3|Procurement of Uniform Materials for Primary, Secondary and Post Secondary Schools|MOE|Lot 5 Roy & Sons Import|SR 1,080.000.00| +|42|19/3|Procurement of Medium Voltage Cables|PUC|Nexans France Lens|Euro 52,354.45| +|43|19/3|Procurement of Brass/Bronze Fitting|PUC|Jainsons Industries|Euro 97,718.48| +|44|19/3|Procurement of Training Vessel for Maritime Training Centre|SFA|Neil Marine (Sri Lanka)|USD 284,521.15| +|44|19/3|Procurement of Training Vessel for Maritime Training Centre-Equipment|SFA|Neil Marine (Sri Lanka)|USD 97,861.50| +|45|19/3|Procurement of Stationery Items-Lot 1|MOE|Print V Care|SR 349,450.00| +|45|19/3|Procurement of Stationery Items-Lot 2|MOE|Print V Care|SR 392,500.00| +|45|19/3|Procurement of Stationery Items-Lot 3|MOE|JD's Stationery & Educational Centre|SR 19,150.00| +|45|19/3|Procurement of Stationery Items-Lot 5|MOE|Vitoria Computer Services Pty LTd|SR 94,500.00| +|45|19/3|Procurement of Stationery Items-Lot 6|MOE|Roy & Sons Imports|SR 114,750.00| +|45|19/3|Procurement of Stationery Items-Lot 7|MOE|Trade Supplies Pty Ltd|SR 35,224.00| +|46|26/3|Procurement of Microsoft Windows License|STB|Victoria Computer Service|SR 977,150.40| +|47|26/3|Procurement of Technical Services for Maintenance of Cenerators at Roche Caiman, New Port & praslin Power Stations|PUC|Ras Tek Pvt Ltd|Euro 58,000.00| +|APR|||||| +|48|2/4|Site Preparation for 2000m GRP Tank at Fond B'Offay Praslin|PUC|Vijay Construction|SR 623,025.00| +|49|2/4|Supply of Fish to the Prison Department|Prison Service|Mr. Danny Loizeau|SR 27.50 per KG| +|50|2/4|Supply of Polo T- Shirt and Jeans -Lot 1|PUC|Magilyn Ltee|USD 28,885.00| +|50|2/4|Supply of Polo T- Shirt and Jeans -Lot 2|PUC|Magilyn Ltee|USD 35,910.00| +|51|2/4|Procurement of Grundfos Pumps for Rocher Caiman Pump Stations|PUC|Bluezone Mauritius|Euro 30,761.00| +|51|2/4|Procurement of Grundfos Pumps for Rocher Caiman Pump Stations No 3|PUC|Bluezone Mauritius|Euro 24,254.00| +|51|2/4|Procurement of Grundfos Pumps Sewerage Pump Station|PUC|Bluezone Mauritius|Euro 65,203.00| +|52|2/4|Procurement of Virtual Studio Equipment|SBC|New Tek Europe|Euro 27,240.00| +|53|2/4|Consultancy Service for Inspection of Rochon Dam & Desisn of Remedial Works|PUC|Tracetebel Engineering|Euro 244,810.00| +|54|2/4|Security in MOH's Institution-Lot 1|MOH|Alliance Security|SR 58,968.00| +|55|2/4|Procurement of Bearings for TurboCharger Wartsila Engines|PUC|ABB France|Euro 57,191.50| +|56|2/4|Procurement for Turbocharger Rotor Refurbishment- Wartsila Engine|PUC|Marine Power International|Euro 33,769.00| +|57|2/4|Procurement of Lighting Equipments|PUC|Thorn Europhane|Euro 38,982.30| +|58|9/4|Construction of Fooothpath at Olivier Maradan Street|SLTA|Benoiton Construction|SR 1,548.520.00| +|59|9/4|Procurement of Utrasonic Cleaning Machine|PUC|IOP Marine (Denmark)|Euro 31,740.00| +|60|9/4|Implementation of Nwe Financial System|SCAA|Blanche Birger|Euro 65,779.50| +|61|9/4|Construction of Fuel station and Admin Block|SPTC|Onivo Construction|SR2,196.748.00| +|62|9/4|Procurement of Plastic Chairs|MOE|J Galt International|ZAR 498,560.00| +|63|9/4|Security Service in All Education Institution -Lot 2|MOE|Xtreme Security Service|SR 28,000.00| +|64|16/4|Procurement of Critical Spare Parts for Wartsila Engines B41|PUC|Wartsila Global Logistic Service|Euro 37,460.92| +|65|16/4|Security Service STC Premises-Supermarket|STC|Isles Security Agency Ltd|SR 908,107.20| +|65|16/4|Security Service STC Premises-Meat & Veg|STC|Allaince Security|SR 456,183.36| +|65|16/4|Security Service STC Premises-Warehouse, Duty free, BDR Complex|STC|Isles Security Agency Ltd|SR 490,752.00| +|65|16/4|Security Service STC Premises-Head Office|STC|Isles Security Agency Ltd|SR 503,712.00| +|65|16/4|Security Service STC Premises-Praslin ( Amitie Store /Duty-Free|STC|Alliance Security|SR 327,598.56| +|66|16/4|Concrete Works for Roads A & B Eve Island, Baie Ste Anne Praslin- Extension of Contract|MLUH|Allied Builders|SR 1,732,989.80| +|67|16/4|Supply of Electrical Cable, Transformewr Equipment & Service Connection Materials|MLUH|Ascent Projects (Sey) Pty Ltd|SR 3,888,632.42| +|68|23/4|Procurement of Vehicle|SFA|Exel Motors|SR 519,869.79| +|69|23/4|Procurement of X-Ray Bulk Cargo Screening Machine for Import Cargo Warehouse Extenson|SCAA|Smiths Detection|Euro 368,000.00| + +|41|12/3|Procurement of Uniform Materials for Primary, Secondary and Post Secondary Schools|MOE|Lot 2 Roy & Sons Import|SR 359,200.00| +|---|---|---|---|---|---| |41|12/3|Procurement of Uniform Materials fro Primary, Secondary and Post Secondary Schools|MOE|Lot 3 Roy & Sons Import|SR650,000.00| |41|12/3|Procurement of Uniform Materials for Primary, Secondary and Post Secondary Schools|MOE|Lot 4 HIS & PJ Enterprise|SR 1,753,614.70| |41|12/3|Procurement of Uniform Materials for Primary, Secondary and Post Secondary Schools|MOE|Lot 5 Roy & Sons Import|SR 1,080.000.00| @@ -91,6 +189,57 @@ |68|23/4|Procurement of Vehicle|SFA|Exel Motors|SR 519,869.79| |69|23/4|Procurement of X-Ray Bulk Cargo Screening Machine for Import Cargo Warehouse Extenson|SCAA|Smiths Detection|Euro 368,000.00| ||||||2| + +|70|23/4|Procurement of ADOBE CSE Editing Software for Audio and Video|SBC|Nuclei|Euro 91,187.70| +|---|---|---|---|---|---| +|71|23/4|Procurement of Ultracsonic Cleaning Machine|PUC|IOP Marine (Denmark)|Euro 1,250.00| +|72|30/4|Procurement of Vehicle|PA|Abhaye Valabhji Pty Ltd|SR575,000.00| +|73|30/4|Procurement of ID Cards|DICT|Blanche Birger Bureautique|Euro 43,500.00| +|74|30/4|Procurement of Electrical Meters|PUC|ISKRAEMECO|Euro 55,733.60| +|75|30/4|Procurement of Grunfos Pump for Le Rocher Pump Station|PUC|Bluezone Mauritius Ltd|Euro 37,910.60| +|76|30/4|Procurement of A3 and A4 Photocopr Paper|MOE|Islad Motors Co Ltd|SR552,000.00| +|MAY|||||| +|77|7/5|Supply of Chemicals for use in Drinking Water Treatment -Calcium Hypochlorite Power|PUC|Technoglass|US$ 156, 920.00| +|77|7/5|Supply of Chemicals for use in Drinking Water Treatment-Calcium Hypochlorite|PUC|Technoglass|US$ 83,980.00| +|78|7/5|Procurement of Connecting Rod (Variations)|PUC|Wartsila Eastern Africa Ltd|Euro 1,200.00| +|79|7/5|Project Management Consultancy-Extension of contract|SIBA|Philippe Adrienne Consultancy Engineers|SR 225.000.00| +|80|7/5|Procurement of Liquid Chlorine|PUC|Al Afaq LLC|USD 77,088.00| +|81|21/5|Procurement of Agriculture Inputs|SAA|Rodley Mathieu|SR1,241,225.00| +|82|21/5|Procurement of Metelogical Equipment|MEE|Vaisala|Euro 33,815.00| +|83|21/5|Procurement of Turbocharger for Rotor Shaft for Wartsila Engine|PUC|Marine Power International|Euro 39,945.00| +|84|21/5|Provision of Security Srevices for MOH's Institutions|MOH|Alliance Security|SR 19,656.00| +|85|21/5|Procurement of Low Voltage ABC Cables|PUC|Nextans|Euro 50,118.69| +|86|28/5|Procurement of HDPE pipes-Pipe for water applications|PUC|STR Marketing-|USD 68,030.02| +|86|28/5|Procurement of HDPE pipes-Pipe for sewerage applications|PUC|STR Marketing|USD 12,509.55| +|87|28/5|Procurement of Incenerator for Baie Ste Anne Praslin Hospital|MOH|Incinco Limited|GBP 101,992.00| +|88|28/5|Geotechnical Survey on Ile Soleil|2020 Development Ltd|Geoconsul Ltee|SR 741,520.00| +|89|28/5|Extra Works at Palais De Justice|The Judiciary|Quingjian Group Co|SR 1,614,226.00| +|90|28/5|Fire Fighting and rescue training Course|SFRS|Emergency Training Solution Pty Ltd|ZAR 824,453.80| +|91|28/5|Procurement of Charger Air Cooler for Wartsila Engine at Power Station C|PUC|Marine Power International FZC|Euro 38,217.00| +|JUN|||||| +|92|4/6|Procurement of Tanalisth Treated Wooden Poles|PUC|Brits Pale|ZAR 438,081.83| +|93|4/6|Procurement of Spare Parts for Maintenance on Generator at Baie Ste Anne Anne Praslin Power StationPUC||Wartsila Global Service|Euro 74,768.40| +|94|4/6|Procurement of Cylinder Liner and Pistons|PUC|Wartsila Eastern Africa|Euro 70,082.73| +|95|4/6|Procurement of Digital Microwave Equipment|SBC|MOCHINO|Euro 125,845.00| +|96|4/6|Procurement of Vehicle 1|LWMA|Abhaye Valabhji Pty Ltd-Jeep|SR 475,000.00| +|96|4/6|Procurement of Vehicle 1|LWMA|EHW Seychelles Ltd- Car|SR 267,850.00| +|97|4/6|Procurement of Forged filter Ball-Valves|PUC|Jainsons Malleables|USD 11,000.00| +|98|11/6|Completion of Stone Masonry Retaining Wall at Jean Larue Road Takamaka|SLTA|Bazil Construction|Sr 1,081,530.00| +|99|11/6|Procurement of Seychelles Paswsports|DIA|Groupe Impimerie Nationale|Euro 102,400.00| +|100|19/6|Anse Boileau Footpath and Drainage Construction Phase II|SLTA|TCH Building Contractor|SR 960,107.50| +|101|21/6|Procurement of Vehicle x 1|PSD|Abhaye Valabhji-Bus x1|SR 475,000.00| +|101|21/6|Procurement of Vehicle x 1|PSD|PMC Auto- Car x1|SR 267,850.00| +|102|21/6|Renovation Works on Block A- Beau Vollon Secondary School|MOE|Sai-Fu Enterprise Company Ltd|SR 2,253,300.00| +|103|21/6|Procurement of 35 VMS Terminal Accessories|SFA|Communication Specialist Ltd|Euro 63,770.00| +|104|21/6|Renewal of SFA's Themis FMC Services|SFA|CLS- France|Euro 36,000.00| +|105|21/6|Procurement of Electrical Spares for Wartsila Engine|PUC|Wartsila Eastern Africa|Euro 1,757.00| +|106|21/6|Procurement of Class D water Meters|PUC|Elster Metering Limited (Pty) Ltd|USD 109,7051.00| +|107|21/6|Procurement of Sludge Incinerator|PUC|Atlas Incinerator|€ 94,470.00| +|108|21/6|Procurement of Technical Services for Crankshaft Grinding|PUC|Goltens|USD 76,075.00| +|109|21/6|Procurement of WAS Pumps|PUC|Netzsch Southern Africa Pty Ltd|Euro 56,657.20| + +|70|23/4|Procurement of ADOBE CSE Editing Software for Audio and Video|SBC|Nuclei|Euro 91,187.70| +|---|---|---|---|---|---| |71|23/4|Procurement of Ultracsonic Cleaning Machine|PUC|IOP Marine (Denmark)|Euro 1,250.00| |72|30/4|Procurement of Vehicle|PA|Abhaye Valabhji Pty Ltd|SR575,000.00| |73|30/4|Procurement of ID Cards|DICT|Blanche Birger Bureautique|Euro 43,500.00| @@ -137,6 +286,57 @@ |108|21/6|Procurement of Technical Services for Crankshaft Grinding|PUC|Goltens|USD 76,075.00| |109|21/6|Procurement of WAS Pumps|PUC|Netzsch Southern Africa Pty Ltd|Euro 56,657.20| ||||||3| + +|110|21/6|Refurbishment of Turbo Charger for Rotor Shaft|PUC|Marine Power International FZC|Euro 57,326.00| +|---|---|---|---|---|---| +|111|21/6|Procurement of Fitting and Pipes ( Stock Replenishment)|PUC|STR Marketing Ltee|USD 60,688.90| +|112|21/6|Refurbishment of Pharmaceutical Production Unit-Contract Extension|MOH|Mahe Design|SR808,375.00| +|113|21/6|Technical Service for Repair on Generator-1B|PUC|Goltens|USD 75,600.00| +|114|21/6|Procurement of Gate Valves|PUC|AVK Valves Southern africa (Pty) Ltd|ZAR 461,608.44| +|115|25/6|Procurement of Hot-Dipped Galvanised Materials|PUC|HDSA Shipping (Pty) Ltd|Zar 435,614.00| +|116|25/6|Procurement of Critical Spares for Wartsila Engine B51- Lot 1|PUC|Wartsila Global Services|Euro 92,472.70| +|117|25/6|Procurement of Pistons for Replacement on Wartsila Engined- 8p on Praslin|PUC|RUYSCH|Euro 83,262.64| +|118|25/6|Procurement of services Operation and Maintenance of Containerised Desalination Units on Mahe -2013|PUC|Tornado Group|USD 266,820.82| +|119|25/6|Procurement of X-ray Screening Machine for VVIP Lounge|SCAA|Smiths Detection|Euro 101,800.00| +|JUL|||||| +|120|2/7|Construction of Motorable Road at Anse Aux Pins- Capucin (Nourrice Road)|SLTA|Esparon's Enterprise|SR 183,410.00| +|121|2/7|Bridge Renovation at Cascade|SLTA|Benioton Construction|SR 1,361,100.00| +|122|2/7|Procurement of Bitumen|SLTA|Termcotank S.A|USD 519,418.20| +|123|2/7|Procurement of Vehicle x 2|STB|PMC Auto Pty Ltd|SR 960,126.00| +|124|2/7|Consutancy Services for Technical Assistance for Elaboration of Theme on Natioal and International Positioning|MFA|John Nevill|SR 180,000.00| +|125|9/7|Procurement of Stationery Items Lot 4|MOE|JD's Stationey EDU Centre|SR 629,950.00| +|126|9/7|Procurement of Atomic Spectrometer|SBS|SMM Instrument (Pty) Ltd|USD 181,147.00| +|127|9/7|Operation and Maintenance of Containerised Desalination Units by Tornado-2012|PUC|Tornado Group|USD 45,174.62| +|128|9/7|Procurement of Sensors and Transmitters for Wartsila Engines|PUC|Wartsila Global Logistic Services|Euro 50,360.00| +|129|9/7|Procurement of Bulk Water Meters Strainers|PUC|Elster Metering Limited (Pty) Ltd|ZAR 931,966.00| +|130|9/7|Procurement of Gudgeon Pins for engine 8P|PUC|Wartsila Global Logistic Services|Euro 23,460.00| +|131|9/7|Procurement of Piston for Wartsila Engine A21|PUC|Wartsila Global Logistic Services|Euro 219,622.00| +|132|9/7|Procurement of Piston for Wartsila Engine B11|PUC|Marine Power International FZC|Euro 243,799.98| +|133|9/7|Constrcution of 6 Blocks of 6 Units of Flats- Ilse Preseverance|MLUH|Sai-Fu Enterprise Company Ltd|SR 17,376,392.65| +|134|9/7|La Louise Non- Performance Pipieline Replacement|PUC|Ascent Projects Sey Pty Ltd|SR 1,289,375.00| +|135|9/7|Refurbishment Sewage Treatment Plant Baie Ste Anne Praslin Hospital|MOH|Des Iles Environment Solutions|SR 1,462,875.00| +|136|9/7|Consultancy Services for Quality management System (QMS)|DE|Mr. John Horack|USD 22,325.00| +|137|9/7|Construction of New Road at Cascade Primary School|MLUH|Esparon's Enterprise|SR 2,443,814.00| +|138|9/7|Procurement of Tanalisth Treated Wooden Poles|PUC|Brits Pale Pty Ltd|ZAR 518,694.02| +|139|9/7|Procurement of Non-Critical Spares- Specialized Tools|PUC|Marine Power International FZC|Euro 10,866.55| +|140|9/7|Upgarding of Roche Caiman Road and Roundabout|SLTA|Bazil Construction|SR 1,592,002.00| +|141|9/7|Procurement of Crankshaft for Engine 5B at New Port Station|PUC|A&D Sales|GBP 65,375.00| +|142|16/7|Refurnishment sewage treatment plant, Baie Ste Anne Praslin Hospital|MOH|Des Iles Environment Solutions|SR1,462,875.00| +|143|16/7|Consultancy Service for Quality Management System (QMS)|DE|Mr. John Horack|CND$22,325.00| +|144|16/7|Construction of New Road at Cascade Primary School|SLTA|Esparon's Enterprise|SR 2,443,814.00| +|145|16/7|Procurement of Tanalisth Treated Wooden Poles|PUC|Brit Pale Pty Ltd|ZAR518,694.02| +|146|16/7|Procurement od Non- critcal spares-specialized tools|PUC|Marine International FZC|Euro10,866.55| +|147|16/7|Upgrading of Roche Caiman Road and roundabout|SLTA|Bazil Construction|SR1,592,002.00| +|148|16/7|Procurement of Crankshaft for Engine 5B at New Port Station|PUC|A&D Sales|GBP 65,375.00| +|149|23/7|Consultancy services for infrastructure PIE (Z18,Z6,Z20, link Z20-pie star area.|MLUH|LC International|SR2,814,108.00| +|150|23/7|Procurement of CT Scan Tube|MOH|Ireland Blyth Ltd from Mauritius|Euro 122,000.00| +|151|23/7|Procurement of Ultraviolet disinfection System for Sewerage Treatment|PUC|Orica Wtercare|SR851,104.72| +|152|23/7|Procurement of pumps, Electrical panels and spares for water pumping stations and spares for sewage pumps (a) Procurement of spares for Hidrostal sewega pumps|PUC|Hidrostal Sewage Sa Pty Ltd|Euro97,498.32| +|153|23/7|(B)Procurement of Grundfos Pumps for water pumping|PUC|Bluezone Mauritius|Euro 13,410.00| +|154|23/7|Procurement of spare for Mirrlees Radiator|PUC|Covard Heat Transfer Ltd|GBP32,042.43| + +|110|21/6|Refurbishment of Turbo Charger for Rotor Shaft|PUC|Marine Power International FZC|Euro 57,326.00| +|---|---|---|---|---|---| |111|21/6|Procurement of Fitting and Pipes ( Stock Replenishment)|PUC|STR Marketing Ltee|USD 60,688.90| |112|21/6|Refurbishment of Pharmaceutical Production Unit-Contract Extension|MOH|Mahe Design|SR808,375.00| |113|21/6|Technical Service for Repair on Generator-1B|PUC|Goltens|USD 75,600.00| @@ -183,6 +383,57 @@ |153|23/7|(B)Procurement of Grundfos Pumps for water pumping|PUC|Bluezone Mauritius|Euro 13,410.00| |154|23/7|Procurement of spare for Mirrlees Radiator|PUC|Covard Heat Transfer Ltd|GBP32,042.43| ||||||4| + +|155|23/7|Renovation work at the schools section MOE headquater|MOE|Prime Builders|SR1,768,620.00| +|---|---|---|---|---|---| +|156|23/7|General renovation works to Block B at Belonie Secondary School|MOE|Belvedere Builders|SR869,505.75| +|157|30/7|Procurement of Engine Block and Crankshaft for Engine A11|PUC|Ras Tek Pvt Ltd|Euro798,650.00| +|158|30/7|procurement of Wartsila Engine spares|PUC|Wartsila Eastern Africa ltd|Euro158,424.00| +|159|30/7|Proposed walkway, Drain, rock armoring , road and Bridge widening at Anse Talbot( Ex-Golden Egg)|SLTA|G&S Enterpise|SR1,113,010.00| +|160|30/7|Procurement of transfer pump control panel|PUC|CA Engineering Consultancy Pte Ltd|SGD14,600.00| +|161|30/7|Consultancy service for North to South Victoria Bye- Pass road and utilities organisation|MLUH|Sonnel Seychelles LTD|SR1,332,000.00| +|162|30/7|Procurement of the supply of sodium cardonate|PUC|HPL Chemical LTD|USD42,600.00| +|AUG|||||| +|163|6/8|Procurement of Vehichels X 4|MOH|Kim-Koom & Co Pty Ltd|SR1,100,000.00| +|164|6/8|Tender for the collection of redeem center for the collection of pet plastic produts and empty aluminum beverage cans for the North Mahe|WMF|Mr. Donal Ernesta|| +|164|6/8|Tender for the collection of redeem center for the collection of pet plastic produts and empty aluminum beverage cans for the Central Mahe|WMF|Mr. Kali Deenudayali|| +|165|13/8|Procurement of exercise books|MOE|JD's Stationey EDU Centre|SR,1,700,000.00| +|166|13/8|Procurement of High Pressure pump spares -BZM00003022|PUC|Bluezone Mauritius Ltd|Euro27,712.73| +|166|13/8|Procurement of High Pressure pump spares -BZM00003023|PUC|Bluezone Mauritius Ltd|Euro12,639.55| +|167|13/8|Procurement of CR64 pump spares|PUC|Bluezone Mauritius Ltd|Euro31,822.00| +|168|13/8|Construction of access road at Ex-Deltel- Anse Royale|MLUH|Benoiton Construction Pty Ltd|SR4,585,441.12| +|169|13/8|Renovation work to one classroom block at Pionte Larue Secondary School|MOE|Belverdere Builders|SR1,114,575.00| +|170|13/8|Completion of Amitie Housing Project 12 x 3 Bedrooms|MLUH|Allied Builders Sey Ltd|6,006,410.37| +|171|13/8|Copolia Road widening-Phase 2|SLTA|Belverdere Builders|SR1,037,235.00| +|172|20/8|Procurement of ABB Turbocharger Cartridge|PUC|ABB France|Euro106,266.66| +|173|20/8|Procurement of services to carry out the full refit and overhaul of tug Alouette|SPA|SECREN (Madagascar)|Euro189,618.42| +|174|20/8|Awarding of cranshatf and Block replacement solution for A11 engine|PUC|Wartsila|Euro800,000.00| +|175|29/8|Servicing of geartrain for Wartsila Engine 18V32LN|PUC|Wartsila Eastern Africa|Euro 21,141.90| +|176|29/8|Spare parts for Wartsila Engine 18V32LN|PUC|Wartsila Eastern Africa|Euro38,440.00| +|177|29/8|Procurement for sience equipment and chemical for 2013|MOE|Findel Education|GBP37,831.26| +|178|29/8|Installation of fencing at Mont Fleuri Secodary School|MOE|Donald Builbing & Contractor Pty Ltd|SR1,761,034.00| +|179|29/8|Construction ot New Fire Station, fuel store, bin site and boundary wall at Lapasse La Digue-Variations SFRSA||Furui Construction Pty Ltd|SR277,521.45| +|180|29/8|Propsed road widening and drainage improvement at Quincy Vilage|SLTA|TCH Contractor|SR1,015,806.24| +|181|3/9|Tender for procurement of windows licenses|STB|Victoria Computer Service|SR788,808.00| +|182|3/9|Procurement of Bitumen in drums for the asphalt production Praslin|SLTA|Benzene International Pte Ltd|Euro87,220.00| +|183|3/9|Procurement of spre parts for Sulzer Engine 8ZAL40 and 8ZAL40S|PUC|Wartsila Eastern Africa|Euro9,861.00| +|184|3/9|Procurement of gear train parts for Stork Wartsila Engine SW280|PUC|Wartsila Eastern Africa|Euro7,931.00| +|SEP|||||| +|185|10/9|Cleaning and maintenance of wetlands and rivers on Praslin|ED|"W" Cleaning Service|SR769,590.00| +|186|10/9|Re-construction and partition of Independence House|MLUH|Green Island Construction Co Pty|SR868,022.94| +|187|10/9|Procurement of critical spare fro major overhaul|PUC|Wartsila Eastern Afirca|Euro33,623.00| +|188|10/9|Procurement of control panel for six pumps station|PUC|CA Engineering Consultancy Pte Ltd|SGD37,400.00| +|189|17/9|Security service for Wellness Centre|MOH|Alliance Security|SR78,624.00| +|190|17/9|Procurement of reinforce plastic (FRP) handrails and grating|PUC|Webforge Group|SR839,795.02| +|191|17/9|Procurement of helital fitting|PUC|Cu A1 Engineering (Pty) Ltd|ZAR343,000.00| +|192|17/9|Procurement of Flygt pumps|PUC|Aqualia DPI LTD|Euro56,080.00| +|193|17/9|Procurement of black-up and emergency pumps|PUC|M.A.H.Y Khoory & Co|UAE186,650.00| +|194|17/9|Procurement of additional requirement of polo t-shirts and jeans|PUC|Magilyn Ltee|USD42,127.50| +|195|17/9|Procurement of Pressure filters|PUC|Barr +Wray|GBP379,921.00| +|196|17/9|Procurement of grunfos pump for water pumping|PUC|Blue Zone Mauritius|Euro108,574.00| + +|155|23/7|Renovation work at the schools section MOE headquater|MOE|Prime Builders|SR1,768,620.00| +|---|---|---|---|---|---| |156|23/7|General renovation works to Block B at Belonie Secondary School|MOE|Belvedere Builders|SR869,505.75| |157|30/7|Procurement of Engine Block and Crankshaft for Engine A11|PUC|Ras Tek Pvt Ltd|Euro798,650.00| |158|30/7|procurement of Wartsila Engine spares|PUC|Wartsila Eastern Africa ltd|Euro158,424.00| @@ -229,6 +480,33 @@ |195|17/9|Procurement of Pressure filters|PUC|Barr +Wray|GBP379,921.00| |196|17/9|Procurement of grunfos pump for water pumping|PUC|Blue Zone Mauritius|Euro108,574.00| ||||||5| + +|197|17/9|Supply of pipes and fittings for Network diversion in Victoria|PUC|Ascent Projects (Sey) Pty Ltd|USD181,661.00| +|---|---|---|---|---|---| +|198|24/9|Procurement of Technical Services for Crankshaft Grinding on Engine 6B|PUC|Golten Co Ltd|USD92,654.00| +|199|24/9|Procurement of technical service for repair of generator 1B- varations|PUC|Golten Co Ltd|USD84,337.00| +|200|24/9|Procurement of spare parts fro Wartsila Engine A21|PUC|Wartsila Global Logistic|Euro235,579.30| +|201|24/9|Procurement of vehicle x 2|SLTA|Abhaye Valabhji Pty Ltd|SR1000.000.00| +|OCT|||||| +|202|1/10|Proposed new traffic lane to 5th June Avenue|SLTA|Divy Constrution|SR2,864,589.00| +|203|1/10|Proposed Walkway, Drain, rock armoring , road and Bridge widening at Anse Talbot( Ex-Golden Egg) - Variations|SLTA|G & S Enterprise|SR200,448.00| +|204|1/10|Proposed Reconstrcution of Burnt House-Au Cap|MLUH|Furui Construction|SR946,130.00| +|205|1/10|Variation on the project associated with the procurement of seven 100m3/day containerised plant|PUC|Tornado Group (UAE)|USD172,500.00| +|206|1/10|Works on the breaker system at Bel Omber desalination plant|PUC|United Concrete Products (Sey)Ltd|SR1,998,993.11| +|207|1/10|Procurement of Viking Johnson fittings|PUC|Viking Johnson (UK)|GBP92,286.50| +|208|1/10|Procurement of HDPE Pipes and Fittings|PUC|STR Marketing Ltee|USD196,672.57| +|209|1/10|Procurement of Piston and Gudgeon Pins|PUC|Marine Power International FZC|Euro277,098.00| +|210|8/10|Procurement of Services for Sewing of Uniform for Office Staff-Lot 1|PUC|Ms. Suzanne Edmond|SR500.00| +|210|8/10|Procurement of Services for Sewing of Uniform for Office Staff-Lot 2|PUC|Ms. Suzanne Edmond|SR200.00| +|210|8/10|Procurement of Services for Sewing of Uniform for Office Staff-Lot 3|PUC|Ms. Suzanne Edmond|SR475.00| +|210|8/10|Procurement of Services for Sewing of Uniform for Office Staff-Lot 4|PUC|Sey Sytle|SR450.00| +|211|8/10|Procurement of vehicle x 2|FIU|PMC Auto Pty Ltd|SR526,864.00| +|212|15/10|Renovation Works to Le Chantier Mall-Variation Works|SSF|Allied Builders Sey Ltd|SR1,673,752.51| +|213|15/10|Security Services for District's Administration Offices and Community Centres-Lot 1|MSACDS|Eagle Watch Security Services|SR96,600.00| +|213|15/10|Security Services for District's Administration Offices and Community Centres-Lot 2|MSACDS|Alliance Security Services|SR103,012.00| + +|197|17/9|Supply of pipes and fittings for Network diversion in Victoria|PUC|Ascent Projects (Sey) Pty Ltd|USD181,661.00| +|---|---|---|---|---|---| |198|24/9|Procurement of Technical Services for Crankshaft Grinding on Engine 6B|PUC|Golten Co Ltd|USD92,654.00| |199|24/9|Procurement of technical service for repair of generator 1B- varations|PUC|Golten Co Ltd|USD84,337.00| |200|24/9|Procurement of spare parts fro Wartsila Engine A21|PUC|Wartsila Global Logistic|Euro235,579.30| @@ -276,6 +554,25 @@ |232|29/10|Renovation and Partitioning of Independence House-Variation|MLUH|Green Island Construction Co Pty|SR1,847,477.43| ||||||6| +|298|17/12|Renovation of Glacis Health Centre-Variations|MOH|F & P Construction|SR400,000.00| +|---|---|---|---|---|---| +|299|17/12|Supply of New Equipment for Kitchen|Prison Service|K. K. Chua|SR943,000.00| +|300|23/12|Procurement of Vehicle x 1|MLUH|Sun Motors|SR770,000.00| +|300|23/12|Procurement of Vehicle x 1|MLUH|Abhaye Valabhji|SR435,000.00| +|301|23/12|Procurement of Spares for LT Water Circulating Pump|PUC|Wartsila Global Logistcs Services|Euro 19,389.00| +|302|23/12|Procurement of Filter Cartridge-Desalination Plants|PUC|Trans Crescent Technical Equipment Company|Euro22,030.00| +|303|23/12|Procurement of LED Streetlights|SLTA|Lighting Orient (China)|USD104,282.00| +|304|23/12|Proposed New Road at Cascade Primary School-Variations|SLTA|Esparon's Enterprise|SR861,400.00| +|305|23/12|General renovation at School Section at MOE Headquarters-Variations|MOE|Prime Builders|SR2,761,935.75| +|306|23/12|Remedial Works at Mont Fleuri Primary School and Creche-Variations|MOE|Sai-Fu Enterprise Company Ltd|SR1,006,778.50| +|307|23/12|General Renovation of Toilet at La Digue School|MOE|Furui Construction|SR338,785.40| +|308|26/12|Procurement of 2500 Ream of A4 Paper|MOE|Island Motors|SR1,200,000.00| +|309|26/12|Procurement of Additional of 400 Desktop Computers|MOE|Orion Computers|SR3,100,000.00| +|310|26/12|Procuremet of Vehcile x 5|MOE|PMC Auto Pty Ltd|SR1,374,897.00| +|311|26/12|Procurement of Canon Ink / Riso Meter|MOE|Paradise Computer Services|SR473,000.00| +|312|26/12|Supply of Metal Fencing|MOE|BBT (UK)|GBP105,278.00| +|313|26/12|Procurement of Mobile Dental Clinic / Surgeries x 2|MOH|Quayle Dental (UK)|GBP233,842.00| + |298|17/12|Renovation of Glacis Health Centre-Variations|MOH|F & P Construction|SR400,000.00| |---|---|---|---|---|---| |299|17/12|Supply of New Equipment for Kitchen||Prison Service K. K. Chua|SR943,000.00|