feat: Add dedicated 'Dane z rejestrów urzędowych' section to company profile
- Display all CEIDG data: status, owner, PKD codes, contacts, addresses - Display all KRS data: legal form, capital, KRS number - Show data source banner with fetch timestamp and registry link - Display additional business locations from CEIDG - Show succession manager (zarządca sukcesyjny) if present - All PKD codes displayed as tags with main PKD highlighted Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
7bfbfa6279
commit
a73117ad4a
@ -1155,7 +1155,227 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Legal & Business Info - Card Based -->
|
||||
<!-- ============================================================ -->
|
||||
<!-- DANE Z REJESTRÓW URZĘDOWYCH (CEIDG / KRS) -->
|
||||
<!-- ============================================================ -->
|
||||
{% if company.ceidg_id or (company.krs and company.data_source == 'KRS API') %}
|
||||
<div class="company-section">
|
||||
<h2 class="section-title">
|
||||
Dane z rejestrów urzędowych
|
||||
{% if company.ceidg_id %}
|
||||
<span style="background: #059669; color: white; font-size: 11px; padding: 4px 10px; border-radius: 20px; margin-left: 12px; font-weight: 600;">CEIDG</span>
|
||||
{% elif company.krs and company.data_source == 'KRS API' %}
|
||||
<span style="background: #2563eb; color: white; font-size: 11px; padding: 4px 10px; border-radius: 20px; margin-left: 12px; font-weight: 600;">KRS</span>
|
||||
{% endif %}
|
||||
</h2>
|
||||
|
||||
<!-- Source Info Banner -->
|
||||
<div style="background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%); border: 1px solid #86efac; border-radius: var(--radius-lg); padding: var(--spacing-md); margin-bottom: var(--spacing-lg); display: flex; align-items: center; gap: var(--spacing-md); flex-wrap: wrap;">
|
||||
<svg width="20" height="20" fill="#059669" viewBox="0 0 24 24">
|
||||
<path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"/>
|
||||
</svg>
|
||||
<div style="flex: 1;">
|
||||
<div style="font-size: var(--font-size-sm); color: #166534; font-weight: 600;">
|
||||
{% if company.ceidg_id %}
|
||||
Dane pobrane z Centralnej Ewidencji i Informacji o Działalności Gospodarczej (CEIDG)
|
||||
{% else %}
|
||||
Dane pobrane z Krajowego Rejestru Sądowego (KRS)
|
||||
{% endif %}
|
||||
</div>
|
||||
<div style="font-size: var(--font-size-xs); color: #15803d; margin-top: 2px;">
|
||||
{% if company.ceidg_fetched_at %}
|
||||
Pobrano: {{ company.ceidg_fetched_at.strftime('%d.%m.%Y %H:%M') }} •
|
||||
{% elif company.last_verified_at %}
|
||||
Zweryfikowano: {{ company.last_verified_at.strftime('%d.%m.%Y %H:%M') }} •
|
||||
{% endif %}
|
||||
{% if company.ceidg_id %}
|
||||
ID: {{ company.ceidg_id[:8] }}...
|
||||
{% elif company.krs %}
|
||||
KRS: {{ company.krs }}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<a href="{% if company.ceidg_id %}https://aplikacja.ceidg.gov.pl/ceidg/ceidg.public.ui/SearchDetails.aspx?Id={{ company.ceidg_id }}{% else %}https://ekrs.ms.gov.pl/web/wyszukiwarka-krs/strona-glowna/index.html{% endif %}"
|
||||
target="_blank"
|
||||
style="background: white; border: 1px solid #86efac; color: #166534; padding: 6px 12px; border-radius: var(--radius); font-size: var(--font-size-sm); text-decoration: none; font-weight: 500;">
|
||||
Sprawdź w rejestrze →
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--spacing-lg);">
|
||||
|
||||
<!-- ===== DANE CEIDG ===== -->
|
||||
{% if company.ceidg_id %}
|
||||
|
||||
<!-- Status CEIDG -->
|
||||
{% if company.ceidg_status %}
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid {% if company.ceidg_status == 'AKTYWNY' %}#22c55e{% elif company.ceidg_status == 'ZAWIESZONY' %}#f59e0b{% else %}#ef4444{% endif %};">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em;">Status działalności</div>
|
||||
<div style="font-size: var(--font-size-xl); font-weight: 700; color: {% if company.ceidg_status == 'AKTYWNY' %}#22c55e{% elif company.ceidg_status == 'ZAWIESZONY' %}#f59e0b{% else %}#ef4444{% endif %}; margin-top: 4px;">
|
||||
{{ company.ceidg_status }}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Właściciel JDG -->
|
||||
{% if company.owner_first_name %}
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid #8b5cf6;">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em;">Właściciel</div>
|
||||
<div style="font-size: var(--font-size-xl); font-weight: 700; color: #8b5cf6; margin-top: 4px;">
|
||||
{{ company.owner_first_name }} {{ company.owner_last_name }}
|
||||
</div>
|
||||
<div style="font-size: var(--font-size-xs); color: var(--text-muted); margin-top: 4px;">Jednoosobowa działalność gospodarcza</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Data rozpoczęcia -->
|
||||
{% if company.business_start_date %}
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid #059669;">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em;">Data rozpoczęcia działalności</div>
|
||||
<div style="font-size: var(--font-size-xl); font-weight: 700; color: #059669; margin-top: 4px;">
|
||||
{{ company.business_start_date.strftime('%d.%m.%Y') }}
|
||||
</div>
|
||||
{% set years_active = ((now.date() - company.business_start_date).days / 365.25)|int %}
|
||||
{% if years_active > 0 %}
|
||||
<div style="font-size: var(--font-size-xs); color: var(--text-muted); margin-top: 4px;">{{ years_active }} lat na rynku</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- PKD główny -->
|
||||
{% if company.pkd_code %}
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid #7c3aed;">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em;">PKD główny</div>
|
||||
<div style="font-size: var(--font-size-xl); font-weight: 700; color: #7c3aed; font-family: monospace; margin-top: 4px;">
|
||||
{{ company.pkd_code }}
|
||||
</div>
|
||||
{% if company.pkd_description %}
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); margin-top: 4px;">{{ company.pkd_description }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Dane kontaktowe z CEIDG (jeśli są w raw_data) -->
|
||||
{% if company.ceidg_raw_data %}
|
||||
{% set raw = company.ceidg_raw_data %}
|
||||
|
||||
{% if raw.email or raw.telefon or raw.www %}
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid #0ea5e9; grid-column: span 2;">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: var(--spacing-md);">Dane kontaktowe z CEIDG</div>
|
||||
<div style="display: flex; flex-wrap: wrap; gap: var(--spacing-lg);">
|
||||
{% if raw.email %}
|
||||
<div>
|
||||
<div style="font-size: var(--font-size-xs); color: var(--text-muted);">Email</div>
|
||||
<a href="mailto:{{ raw.email }}" style="color: #0ea5e9; font-weight: 600;">{{ raw.email }}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if raw.telefon %}
|
||||
<div>
|
||||
<div style="font-size: var(--font-size-xs); color: var(--text-muted);">Telefon</div>
|
||||
<a href="tel:{{ raw.telefon }}" style="color: #0ea5e9; font-weight: 600;">{{ raw.telefon }}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if raw.www %}
|
||||
<div>
|
||||
<div style="font-size: var(--font-size-xs); color: var(--text-muted);">Strona WWW</div>
|
||||
<a href="https://{{ raw.www }}" target="_blank" style="color: #0ea5e9; font-weight: 600;">{{ raw.www }}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Wszystkie PKD z CEIDG -->
|
||||
{% if raw.pkd and raw.pkd|length > 1 %}
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid #a855f7; grid-column: span 2;">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: var(--spacing-md);">
|
||||
Wszystkie kody PKD ({{ raw.pkd|length }})
|
||||
</div>
|
||||
<div style="display: flex; flex-wrap: wrap; gap: var(--spacing-sm); max-height: 200px; overflow-y: auto;">
|
||||
{% for pkd in raw.pkd %}
|
||||
<span style="background: {% if pkd.kod == company.pkd_code %}#7c3aed; color: white;{% else %}var(--surface); color: var(--text-secondary);{% endif %} padding: 4px 10px; border-radius: var(--radius); font-size: var(--font-size-sm); border: 1px solid var(--border);" title="{{ pkd.nazwa }}">
|
||||
{{ pkd.kod }}{% if pkd.kod == company.pkd_code %} ★{% endif %}
|
||||
</span>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Zarządca sukcesyjny -->
|
||||
{% if raw.zarzadcaSukcesyjny %}
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid #f59e0b;">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em;">Zarządca sukcesyjny</div>
|
||||
<div style="font-size: var(--font-size-lg); font-weight: 600; color: #f59e0b; margin-top: 4px;">
|
||||
{{ raw.zarzadcaSukcesyjny.imie }} {{ raw.zarzadcaSukcesyjny.nazwisko }}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Dodatkowe adresy działalności -->
|
||||
{% if raw.adresyDzialalnosciDodatkowe and raw.adresyDzialalnosciDodatkowe|length > 0 %}
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid #64748b; grid-column: span 2;">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: var(--spacing-md);">
|
||||
Dodatkowe miejsca działalności ({{ raw.adresyDzialalnosciDodatkowe|length }})
|
||||
</div>
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--spacing-md);">
|
||||
{% for addr in raw.adresyDzialalnosciDodatkowe %}
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-primary);">
|
||||
<strong>{{ addr.opisNietypowegoMiejsca|default('Lokalizacja') }}</strong><br>
|
||||
{{ addr.ulica }} {{ addr.budynek }}{% if addr.lokal %}/{{ addr.lokal }}{% endif %}<br>
|
||||
{{ addr.kod }} {{ addr.miasto }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
<!-- ===== KONIEC DANE CEIDG ===== -->
|
||||
|
||||
<!-- ===== DANE KRS ===== -->
|
||||
{% if company.krs and company.data_source == 'KRS API' and not company.ceidg_id %}
|
||||
|
||||
<!-- Forma prawna -->
|
||||
{% if company.legal_form %}
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid #2563eb;">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em;">Forma prawna</div>
|
||||
<div style="font-size: var(--font-size-lg); font-weight: 700; color: #2563eb; margin-top: 4px;">
|
||||
{{ company.legal_form }}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Kapitał zakładowy -->
|
||||
{% if company.capital_amount %}
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid #22c55e;">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em;">Kapitał zakładowy</div>
|
||||
<div style="font-size: var(--font-size-xl); font-weight: 700; color: #22c55e; margin-top: 4px;">
|
||||
{{ '{:,.2f}'.format(company.capital_amount).replace(',', ' ') }} PLN
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Numer KRS -->
|
||||
<div style="background: var(--background); border-radius: var(--radius-lg); padding: var(--spacing-lg); border-left: 4px solid #6366f1;">
|
||||
<div style="font-size: var(--font-size-sm); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em;">Numer KRS</div>
|
||||
<div style="font-size: var(--font-size-xl); font-weight: 700; color: #6366f1; font-family: monospace; margin-top: 4px;">
|
||||
{{ company.krs }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
<!-- ===== KONIEC DANE KRS ===== -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<!-- ============================================================ -->
|
||||
<!-- KONIEC: DANE Z REJESTRÓW URZĘDOWYCH -->
|
||||
<!-- ============================================================ -->
|
||||
|
||||
<!-- Legacy: Legal & Business Info - Card Based -->
|
||||
<div class="company-section">
|
||||
<h2 class="section-title">Informacje prawne i biznesowe</h2>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user