# Eupart Tarjouslaskenta - Projektikuvaus

## Projektin tarkoitus

Eupart Oy on teollisuuseristyksen ammattilainen. Kun asiakas pyytää tarjousta putkieristyksistä, Eupart saa **osalistan** (materiaaliluettelo) joka sisältää eristettävät putket, käyrät, venttiilit ja muut komponentit.

Tarjouslaskijan tehtävä on:
1. Lukea osalista läpi
2. Tunnistaa jokainen rivi (mikä osatyyppi, mikä DN-koko, mikä eristepaksuus)
3. Etsiä vastaava hinta yksikköhinnastosta
4. Laskea kokonaishinta (materiaali + asennus × määrä)

**Ongelma:** Osalistat tulevat eri asiakkailta eri formaateissa. Sama työ tehdään käsin uudelleen joka kerta. Lisäksi tarjouspyyntö päivittyy projektin aikana 3-5 kertaa, jolloin pitää löytää muutokset edelliseen versioon.

**Ratkaisu:** Automaatio joka lukee eri formaatit, normalisoi ne ja täyttää laskentapohjan automaattisesti.

---

## Kansiorakenne

```
eupart_hankekansio/
├── README.md                 ← Tämä tiedosto
├── excels/                   ← Excel-tiedostot
│   ├── Yksikköhinnasto tarjoukseen.xls    ← LOPPUTUOTE (hinnat)
│   ├── 566040E4_Eristemateriaalien_koontaluettelo.xlsx
│   ├── 240363_Materiaaliluettelo_Kaukolämpö.xls
│   ├── 25019443-ICC250-0250-0260-000026.xlsx
│   └── A02.2.2 Piping insulation MTO.xlsx
└── CAD_kuvat/                ← PDF-piirustukset (myöhempi vaihe)
    ├── eupart_kuva1.pdf
    └── eupart_kuva2.pdf
```

---

## Tiedostojen kuvaukset

### LOPPUTUOTE: Yksikköhinnasto tarjoukseen.xls

Tämä on Eupartin **oma hinnoittelupohja** johon kaikki tarjoukset lasketaan. Sisältää:

**Välilehti "Yksikköhinnasto"** - Hintataulukko
- Rivit: DN/eristepaksuus-yhdistelmät (esim. 15/40, 100/80, 125/100)
- Sarakkeet: Osatyyppikohtaiset hinnat (materiaali + asennus erikseen)

| Osatyyppi | Selitys | Yksikkö |
|-----------|---------|---------|
| PUTKI | Suora putkieriste | €/m |
| KÄYRÄ | Kulmakappaleen eriste | €/kpl |
| T-KPL | T-haaran eriste | €/kpl |
| KARTIO | Supistuksen eriste | €/kpl |
| LOVEUS | Haaroituksen eriste | €/kpl |
| LAIPPAKOTELO | Laipan suojakotelo | €/kpl |
| VENTTIILIKOTELO | Venttiilin suojakotelo | €/kpl |
| PÄÄTE | Putken pään eriste | €/kpl |
| KANNAKE | Kannakkeen eriste | €/kpl |
| KATKAISU | Eristeen katkaisu | €/kpl |
| ERISTYSREIKÄ | Läpivienti | €/kpl |

**Välilehti "Pohja"** - Laskentapohja yhdelle tarjoukselle
- Valitaan DN/eristepaksuus (esim. 100/80)
- Syötetään määrät kullekin osatyypille
- Laskee automaattisesti: määrä × (materiaali + asennus) = yhteensä

---

### REFERENSSITIEDOSTOT: Esimerkkejä asiakkaiden osalistoista

Nämä neljä tiedostoa edustavat **tyypillisiä tarjouspyyntöjä** joita Eupart saa asiakkailta. Ne toimivat referenssinä automaation kehityksessä.

#### 1. 566040E4_Eristemateriaalien_koontaluettelo.xlsx
**Tyyppi:** Suomalainen teollisuusprojekti
**Rivejä:** 1135
**Vaikeusaste:** Helppo

Selkein formaatti. Jokainen rivi sisältää:
- Putkilinja (esim. RA-11851_VLA_80)
- Virtaava aine (VLA = lauhde, VSY = syöttövesi)
- DN-koko
- Nimike suomeksi (esim. "Vuorivillakouru, PSK 4a hyvä taso 151-200C")
- Mitat ja eristepaksuus (esim. "DN100, s=100")
- Saattolämmitys (+5°C)
- Määrä (metrit tai kappaleet)

**Osatyyppi tunnistetaan nimikkeestä:**
- "Vuorivillakouru" → PUTKI
- "Käyrä" → KÄYRÄ
- "Kartio K" → KARTIO
- "Liukukannatin" → KANNAKE

#### 2. 240363_Materiaaliluettelo_Kaukolämpö.xls
**Tyyppi:** Kaukolämpöprojekti
**Rivejä:** 128
**Vaikeusaste:** Helppo

Kaksiosainen tiedosto:
- **Alkuosa (rivit 1-88):** Putkilista (putket, laipat, tiivisteet, kannakointi) - ei eristystä
- **Loppuosa (rivit 89-122):** Eristyslista

Eristysosassa selkeät kategoriat:
- Putkieristys: DN + eristepaksuus + materiaali + metrimäärä
- Käyrän eristys: DN + kpl
- Kartion eristys: DN-alue (esim. DN125-100) + kpl
- T-haaran eristys: DN-alue + kpl

Materiaali: MW-WM-2 = Mineraalivilla (Rockwool)

#### 3. 25019443-ICC250-0250-0260-000026.xlsx
**Tyyppi:** Solukumieristys (FEF)
**Rivejä:** 140
**Vaikeusaste:** Keskiverto

Eri materiaali kuin villa! FEF = Flexible Elastomeric Foam (solukumi).
Käytetään kylmäputkissa ja jäähdytysjärjestelmissä.

Sarakkeet:
- Description: PIPE, ELBOW, T-PIECE, VALVE, REDUCER...
- DN1, DN2 (haaroissa kaksi kokoa)
- Angle (0° tai 90°)
- Material: FEF
- Thickness: 19mm (ohut, tyypillistä solukumille)
- Qty: metrit tai kappaleet

Kaksi välilehteä:
- "Issued materials" - yhteenveto materiaaleittain
- "BY LINEID" - erittely putkilinjoittain

#### 4. A02.2.2 Piping insulation MTO.xlsx
**Tyyppi:** Kansainvälinen teollisuusprojekti (englanti)
**Rivejä:** 928
**Vaikeusaste:** Vaikea

Monimutkaisin formaatti. Vapaamuotoiset kuvaukset englannissa.

Sarakkeet:
- Detail: "Pipe, 21.3 x 2.0, EN 10217-7" tai "Ball Valve with Gear"
- Standard: EN-standardi
- Dimension: Ulkohalkaisija × seinämä (mm)
- Material: Teräslaatu (1.4307 = AISI 304L)
- Angle: 0° tai 90°
- Insulation thck: 40, 60, 80, 100, 120 mm
- Insulation Purp2: Käyttötarkoitus
  - INSU_FR_ = Frost protection (jäätymissuoja)
  - INSU_IN_ = Indoor (sisätila)
  - INSU_OU_ = Outdoor (ulkotila)
  - INSU_SI_ = Safety (henkilösuojaus, kuuma pinta)
- E-Tracing: Saattolämmitys (E-TRACING tai tyhjä)
- Sum of Quantity: Määrä (m tai kpl)

**Haasteet:**
- DN ei suoraan saatavilla, pitää laskea ulkohalkaisijasta
- Osatyyppi pitää tulkita Detail-kentästä
- Yli 50 erilaista komponenttityyppiä

---

## Prosessi: Tarjouspyynnöstä tarjoukseen

```
┌─────────────────┐
│  1. ASIAKKAAN   │
│  TARJOUSPYYNTÖ  │
│  (osalista)     │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  2. TUNNISTUS   │
│  Mikä formaatti?│
│  Mikä materiaali│
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  3. NORMALISOINTI│
│  Jokainen rivi: │
│  DN + paksuus + │
│  osatyyppi +    │
│  määrä          │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  4. HINNOITTELU │
│  Yksikköhinnasto│
│  → hinta/yksikkö│
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  5. TARJOUS     │
│  Täytetty       │
│  laskentapohja  │
└─────────────────┘
```

## Versioiden hallinta

Tarjouspyyntö päivittyy tyypillisesti 3-5 kertaa projektin aikana:
1. Alustava lista (puutteellinen)
2. Tarkennettu lista
3. Lisäyksiä/poistoja
4. Lopullinen lista
5. Viime hetken muutokset

**Automaation pitää tukea:**
- Versioiden tallentamista aikaleimalla
- Diff-näkymää: mikä muuttui versiosta toiseen
- Deltamuutosten vientiä Exceliin

---

## CAD-kuvat (tuleva vaihe)

Kansio `CAD_kuvat/` sisältää isometrisiä piirustuksia PDF-muodossa. Näitä käytetään:
- Lopulliseen tarkistukseen ennen tarjouksen lähettämistä
- Epäselvien kohtien selvittämiseen
- Määrien verifiointiin

**Myöhempi kehitysvaihe:** Computer vision -pohjainen lukeminen PDF-kuvista.

---

## Tekniset huomiot

### DN (Nominal Diameter) vs. ulkohalkaisija

| DN | Ulkohalkaisija (mm) |
|----|---------------------|
| 15 | 21.3 |
| 20 | 26.9 |
| 25 | 33.7 |
| 32 | 42.4 |
| 40 | 48.3 |
| 50 | 60.3 |
| 65 | 76.1 |
| 80 | 88.9 |
| 100 | 114.3 |
| 125 | 139.7 |
| 150 | 168.3 |

### Eristemateriaalit

| Koodi | Materiaali | Käyttö |
|-------|------------|--------|
| MW, Mineraalivilla | Rockwool/vuorivilla | Lämpöeristys, yleinen |
| FEF, Solukumi | Armaflex tms. | Kylmäeristys, kondenssi |

### Eristepaksuudet

Tyypilliset paksuudet: 40, 50, 60, 80, 100, 120 mm
Valinta riippuu: lämpötila, ympäristö, energiatehokkuusvaatimukset
