feat(tables): extract tables from tagged PDF structure tree (#17)
When a PDF has a well-formed structure tree with /Table > /TR > /TD|TH elements linked to MCIDs, build tables directly from the semantic hierarchy. Runs as highest-priority detection (step 0) before rect-based, line-based, and heuristic strategies. - Add StructTree::extract_tables() to walk the tree and collect table descriptors with row/cell/MCID info - Add detect_tables_from_struct_tree() to match MCIDs to TextItems - Reject tables with <30% MCID cell coverage (stale structure trees) - Update 2013-app2 snapshot (struct-tree gives valid but different column ordering) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
61a4c7a088
commit
b6764e7ca9
+12
-8
@@ -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 (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);
|
||||
if roles.is_empty() {
|
||||
None
|
||||
} else {
|
||||
let tables = tree.extract_tables(&page_ids);
|
||||
if !roles.is_empty() {
|
||||
log::debug!(
|
||||
"structure tree: {} pages with MCID roles, {} total MCIDs",
|
||||
"structure tree: {} pages with MCID roles, {} total MCIDs, {} tagged tables",
|
||||
roles.len(),
|
||||
tree.mcid_count()
|
||||
tree.mcid_count(),
|
||||
tables.len()
|
||||
);
|
||||
Some(roles)
|
||||
}
|
||||
});
|
||||
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,
|
||||
))
|
||||
};
|
||||
|
||||
|
||||
+33
-3
@@ -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<u32, f32>,
|
||||
struct_roles: Option<&HashMap<u32, HashMap<i64, crate::structure_tree::StructRole>>>,
|
||||
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<usize> = 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);
|
||||
|
||||
@@ -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<u32, ObjectId>,
|
||||
) -> Vec<StructTable> {
|
||||
let obj_to_page: HashMap<ObjectId, u32> =
|
||||
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<StructTableCell>,
|
||||
}
|
||||
|
||||
/// A complete table extracted from the structure tree.
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct StructTable {
|
||||
pub rows: Vec<StructTableRow>,
|
||||
}
|
||||
|
||||
fn collect_tables(
|
||||
elements: &[StructElement],
|
||||
obj_to_page: &HashMap<ObjectId, u32>,
|
||||
tables: &mut Vec<StructTable>,
|
||||
) {
|
||||
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<ObjectId, u32>,
|
||||
rows: &mut Vec<StructTableRow>,
|
||||
) {
|
||||
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<ObjectId, u32>,
|
||||
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.
|
||||
|
||||
@@ -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<Table> {
|
||||
if struct_tables.is_empty() {
|
||||
return Vec::new();
|
||||
}
|
||||
|
||||
// Build MCID → item indices for this page
|
||||
let mut mcid_to_items: HashMap<i64, Vec<usize>> = 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<String>> = Vec::new();
|
||||
let mut all_item_indices: Vec<usize> = 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::<Vec<_>>()
|
||||
.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<f32> = 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<f32> = 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<i64>) -> 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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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|
|
||||
|
||||
Reference in New Issue
Block a user