---
name: eop-price
description: Интерактивна сесия за ценообразуване на оферта — труд, материали, надценка. Използва се след анализ на поръчка с eop-analyze.
argument-hint: [offer-id]
allowed-tools: Read, Write, Glob, Grep, Agent, WebSearch, WebFetch, Bash(python *)
---

## Зареждане на контекст

Преди да започнеш, прочети задължително с Read tool:
1. `./eopowers/offers/$ARGUMENTS/analysis.md` — ако не съществува: "Първо стартирайте /eop-analyze $ARGUMENTS"
2. `./eopowers/company-profile.md` — ако не съществува: "Първо стартирайте /init"
3. `./eopowers/domain.md` — ако не съществува: "Стартирайте /init първо"

Използвай секция "Ценообразуване" от domain.md за:
- Разходни категории (адаптирай стъпки 3-5)
- Дневни ставки (ако са дефинирани)
- Ценови ориентир
- Типични доставчици (за market research)

# Ценообразуване на поръчка $ARGUMENTS

## Чеклист

```
Ценообразуване на поръчка $ARGUMENTS:
- [ ] Зареждане на анализ и фирмен профил
- [ ] Преглед на раздели и позиции
- [ ] Избор на режим (бърз / детайлен)
- [ ] Пазарно проучване на материали
- [ ] Калкулация на себестойност по раздели
- [ ] Определяне на целеви процент и множител
- [ ] Обобщение и корекции
- [ ] Генериране на анализи на единични цени (ако domain.md има П1-П5)
- [ ] Запис на pricing.md и price-analyses.xlsx
```

## Работен процес

Прочети анализа от `./eopowers/offers/$ARGUMENTS/analysis.md` и фирмения профил. Извлечи всички раздели и позиции от анализа (или КСС ако е наличен).

Зареди методологията от [pricing-guide.md](pricing-guide.md) за справка с дневни ставки, надценки и стратегия.

---

## Избор на режим

Покажи преглед на разделите:

```
📋 Поръчка $ARGUMENTS — [N] раздела, [M] позиции

| Раздел | Позиции | Ключови материали |
|--------|---------|-------------------|
| 1. [име] | [N] | [материали] |
| 2. [име] | [N] | [материали] |
...
```

Попитай: **"Бърз режим (препоръчително за 20+ позиции) или детайлен режим позиция по позиция? (бърз/детайлен)"**

По подразбиране: **бърз**.

---

## Бърз режим (по подразбиране)

### Стъпка 1: Целеви процент

Покажи ценовия ориентир от domain.md (секция "Ценообразуване → Ценови ориентир").

Попитай: **"Какъв процент от прогнозната стойност целите? (напр. 75%)"**

Предложи стойност базирана на критерия за оценка от analysis.md:
- Ако единствен критерий е цена → предложи 70-75%
- Ако техническо предложение тежи повече → предложи 80-85%

### Стъпка 2: Пазарно проучване

Dispatch `eop-market-researcher` субагент с ВСИЧКИ ключови материали от всички раздели наведнъж. Подай:
- Списък на материалите с количества
- Доставчиците от domain.md (секция "Ценообразуване → Типични доставчици")
- Регион от company-profile.md

Субагентът връща таблица с пазарни цени за всеки материал.

### Стъпка 3: Калкулация на себестойност

За всеки раздел, изчисли себестойност:

```
Себестойност на раздел = Труд + Материали + Допълнителни

Труд: оцени часовете по количество × норматив (от pricing-guide.md)
      × средна часова ставка от domain.md
Материали: от пазарното проучване × количества
Допълнителни: транспорт, механизация (наем ако е нужен)
```

Покажи таблица:

```
| Раздел | Себестойност (EUR) | % от прогнозна |
|--------|-------------------|----------------|
| 1. [име] | [X] | [Y]% |
| 2. [име] | [X] | [Y]% |
...
| ОБЩО | [X] | [Y]% |
```

### Стъпка 4: Множител и единични цени

Изчисли множител: `множител = целева_сума / обща_себестойност`

Приложи множителя върху себестойността на всяка позиция, за да получиш единична цена:

```
Единична цена = Себестойност на позиция × множител / количество
```

Покажи обобщение по раздели:

```
═══════════════════════════════════════
📊 ОБОБЩЕНИЕ НА ЦЕНООБРАЗУВАНЕТО
═══════════════════════════════════════
Обща стойност на офертата:        X EUR (без ДДС)
Прогнозна стойност на поръчката:  Y EUR
Разлика:                          Z%
Себестойност:                     W EUR
Печалба:                          P EUR (Q% марж)
Множител за единични цени:        Rx върху себестойност
═══════════════════════════════════════
```

### Стъпка 5: Корекции

- Ако общата стойност > прогнозната: **"⚠️ Общата стойност надвишава прогнозната! Препоръчително е да коригирате."**
- Попитай: **"Искаш ли да коригираш цената на някой раздел? (въведете номер или 'не')"**
- Ако потребителят въведе номер — покажи позициите в раздела и позволи индивидуални корекции.
- Ако "не" — премини към генериране на анализи.

### Стъпка 6: Генериране на анализи на единични цени

Провери дали domain.md има секция **"Параметри за анализ на единични цени"** (П1-П5).

**Ако НЯМА** — пропусни тази стъпка. Покажи: "ℹ️ Domain.md няма П1-П5 параметри — price-analyses.xlsx няма да бъде генериран."

**Ако ИМА** — генерирай `./eopowers/offers/$ARGUMENTS/price-analyses.xlsx`:

```python
python3 << 'PYTHON_SCRIPT'
from openpyxl import load_workbook, Workbook
from openpyxl.styles import Font, Alignment, Border, Side

# П1-П5 параметри от domain.md (попълни конкретните стойности)
P1 = 7.50   # средна часова ставка лв./час
P2 = 0.72   # допълнителни трудови разходи
P3 = 0.40   # допълнителни механизация разходи
P4 = 0.06   # доставно-складови разходи
P5 = 0.10   # печалба

wb = Workbook()
# За всеки раздел от pricing.md — създай отделен лист
# За всяка позиция — ред с колони:
# №, Описание, Ед. мярка, Кол., Труд (часове), Труд (лв.), Механизация, Материали, П4, П5, Ед. цена

# headers
headers = ['№', 'Описание', 'Ед. мярка', 'Кол.', 
           'Труд часове', f'Труд лв. (×П1×(1+П2))', 
           f'Механизация (×(1+П3))', 'Материали',
           f'П4 ({P4*100:.0f}%)', f'П5 ({P5*100:.0f}%)', 'Ед. цена']

# За всяка позиция:
# labor_cost = hours * P1 * (1 + P2)
# mech_cost = mechanization * (1 + P3)
# subtotal = labor_cost + mech_cost + materials
# p4_cost = subtotal * P4
# p5_cost = (subtotal + p4_cost) * P5
# unit_price = (subtotal + p4_cost + p5_cost) / quantity

wb.save('./eopowers/offers/$ARGUMENTS/price-analyses.xlsx')
PYTHON_SCRIPT
```

Реалният скрипт трябва да:
- Прочете pricing.md за разбивката себестойност → труд/материали/механизация по позиции
- Изчисли обратно часовете труд от трудовия разход и П1
- Приложи П1-П5 формулите за всяка позиция
- Създаде отделен лист за всеки раздел от КСС
- Форматира хедърите с bold шрифт

---

## Детайлен режим (по избор)

За детайлно ценообразуване позиция по позиция, потребителят казва "детайлен".

В този режим, за ВСЯКА позиция следвай стъпките по-долу.

### Стъпка Д1: Представяне на позицията

Покажи позицията:

```
📋 Позиция #N: [описание]
   Минимално изискване: [стойност]
   Единица мярка: [единица]
   Количество: [количество]
```

### Стъпка Д2: Изпълнимост

Попитай: **"Можеш ли да изпълниш тази позиция с наличните ресурси? (да/не/частично)"**

- Ако **"не"** — "Искаш ли да използваш подизпълнител или да пропуснеш позицията?"
- Ако **"частично"** — "Какво можеш да покриеш? Какво остава за подизпълнител?"

### Стъпка Д3: Труд

Попитай последователно:
1. "Колко работници са нужни за тази позиция?"
2. "Колко работни дни?"
3. "Каква дневна ставка?" (предложи средна за региона от pricing-guide.md)
4. "Наемане на нови работници или от съществуващия екип?"
5. "Необходима ли е специална квалификация?"

Изчисли и покажи:

```
Труд: [N] работници × [D] дни × [S] лв./ден = [Total] лв.
```

### Стъпка Д4: Материали

За всеки основен материал в позицията:
- Проучи текущи цени онлайн (dispatch `eop-market-researcher` субагент или използвай WebSearch)
- Търси в доставчиците от domain.md (секция "Ценообразуване → Типични доставчици") и други онлайн източници
- Представи намерените цени в таблица

Попитай:
1. "Имаш ли отстъпки при тези доставчици?"
2. "Можеш ли да договориш по-добра цена с партньорите?"
3. "Имаш ли наличност на склад от този материал?"

### Стъпка Д5: Допълнителни разходи

Попитай:
1. "Транспорт от склад до обект: [предложи оценка или попитай]"
2. "Необходима ли е механизация (кран, скеле и др.)?"
3. "Застраховки и гаранции?"

### Стъпка Д6: Обща цена за позицията

Изчисли: **Общо = Труд + Материали + Допълнителни**

Покажи обобщение:

```
📊 Обобщение за Позиция #N:
   Труд:          [X] лв.
   Материали:     [Y] лв.
   Допълнителни:  [Z] лв.
   ─────────────────────────
   ОБЩО:          [X+Y+Z] лв.
   Единична цена: [сума] лв./[единица]
```

### Стъпка Д7: Потвърждение

Запиши позицията и премини към следващата.

След всички позиции — покажи обобщението (същото като Стъпка 4 на бърз режим) и премини към Стъпка 6 (анализи на единични цени).

---

## Запис на pricing.md

Запиши файл `./eopowers/offers/$ARGUMENTS/pricing.md` в следния формат:

```markdown
# Ценообразуване — поръчка [offer-id]

## Обобщение
- Обща стойност на оферта: [X] EUR (без ДДС)
- Прогнозна стойност на поръчката: [Y] EUR
- Разлика: [Z]%
- Себестойност: [W] EUR
- Печалба: [P] EUR ([Q]% марж)
- Множител за единични цени: [R]x върху себестойност
- Стратегия: [описание]
- Дата: [current date]

## По раздели

### Раздел 1: [име] — [обща стойност] EUR

| # | Описание | Мярка | Кол. | Ед. цена (EUR) | Общо (EUR) |
|---|----------|-------|------|----------------|------------|
| 1 | ... | ... | ... | ... | ... |

### Раздел 2: [име] — [обща стойност] EUR
...

## Калкулация

| Компонент | EUR |
|-----------|-----|
| Раздел 1: [име] | [стойност] |
| Раздел 2: [име] | [стойност] |
...
| **Директни разходи** | **[сума]** |
| Overhead [X]% | [стойност] |
| Непредвидени [X]% | [стойност] |
| **ОБЩА СТОЙНОСТ (без ДДС)** | **[сума]** |

## Бележки
- [бележки за специфични решения, подизпълнители, наеми и др.]
```

За подробна методология на ценообразуване, виж [pricing-guide.md](pricing-guide.md).
