{{ brandNume }}
Introdu PIN-ul
| Tip | Lucrare | Client | Nr. | Dată | Total | Acțiuni |
|---|---|---|---|---|---|---|
| {{ d.tip_deviz==='lucrari' ? 'Lucr.' : 'Simplu' }} |
{{ d.nume_lucrare || 'Proiect' }} {{ (d.articole||[]).length }} articole |
{{ devizClientLabel(d) }} | {{ d.nr_deviz || '—' }} | {{ d.data_doc }} | {{ formatRon(devizTotalCuTva(d)) }} {{ formatRon(devizSubtotal(d)) }} {{ normalizeTvaProcent(d.tva_procent) > 0 ? 'cu TVA' : 'fără TVA' }} — |
|
| {{ devizSearchQuery.trim() ? 'Niciun deviz găsit.' : 'Niciun deviz salvat.' }} | ||||||
| Se încarcă... | ||||||
{{getSantierName(sk.santier_id)}}
{{new Date(sk.created_at).toLocaleDateString('ro-RO')}}
Formate: Deviz (Cod | Descriere | Tip | Cant. | UM | Preț) sau Lista C4 (Capitol lucrări + UM + Cantitate). {{ db.norme_proprii.length }} norme în DB.
| Firmă | Cod | Descriere | Tip | UM | Preț | |
|---|---|---|---|---|---|---|
| {{n.firma}} | {{n.cod}} | {{n.descriere}} | {{n.tip}} | {{n.um}} | {{Number(n.pret_unitar).toFixed(2)}} | |
| Nicio normă. Adaugă manual sau importă din Excel. | ||||||
| Nume | Detalii | Acțiuni |
|---|---|---|
| {{ c.nume }} | {{ c.detalii || '—' }} |
|
| {{ clientSearchQuery.trim() ? 'Niciun client găsit.' : 'Niciun client înregistrat.' }} | ||
| Șantier | Adresă | Zile | Azi | Facturi | Acțiuni | |
|---|---|---|---|---|---|---|
| {{ s.adresa || '—' }} | {{ santierZileLucrate(s.pontaje) }} | {{ santierMuncitoriAzi(s.pontaje) }} {{ santierMuncitoriAziLista(s.pontaje).join(', ') }} | {{ formatRon(santierTotalFacturi(s.cheltuieli)) }} |
|
||
| {{ santierSearchQuery.trim() ? 'Niciun șantier găsit.' : 'Niciun șantier deschis.' }} | ||||||
{{ actSantier.adresa || '—' }}
{{ santierRaportLuna ? 'Zile în lună' : 'Zile lucrate' }}
{{ santierZileLucrate(actSantier.pontaje, santierRaportLuna) }}
Muncitori{{ santierRaportLuna ? ' (lună)' : '' }}
{{ santierPontajByAngajat(actSantier.pontaje, santierRaportLuna).length }}
Prezenți azi
{{ santierMuncitoriAzi(actSantier.pontaje) }}
Facturi
{{ formatRon(santierTotalFacturi(actSantier.cheltuieli)) }} RON
Implicit: azi
P = Prezent (plătit)
CO = Concediu (neplătit)
A = Absent (neplătit)
| Nr | Dată | Muncitori | Nume / status | |
|---|---|---|---|---|
| {{ zIdx + 1 }} | {{ zi.data }} | {{ zi.count }} | {{ zi.muncitoriLabel }} | |
| Nicio zi înregistrată{{ santierRaportLuna ? ' în această lună' : '' }}. | ||||
Doar Prezent = plătit · CO + Absent = neplătite
{{ getAngajatName(g.angajatId) }}
Selectează muncitorii bagați pe alt șantier în zilele trecute. Datele și statusul (P / CO / A) rămân la fel, doar șantierul se schimbă.
Doar luna: {{ formatLunaLabel(santierRaportLuna) }} · „Toate” sus = tot istoricul
| Dată | Serie și nr | Total | |
|---|---|---|---|
| {{ c.data }} | {{ c.descriere || ((c.serie || '') + (c.serie && c.nr ? '/' : '') + (c.nr || '')) || '—' }} | {{ formatRon(Number(c.suma || 0)) }} RON | |
| Nicio factură. | |||
| Total: | {{ formatRon(santierTotalFacturi(actSantier.cheltuieli)) }} RON | ||
| Muncitor | Zile | Azi | Tarif/zi | Status | Acțiuni |
|---|---|---|---|---|---|
| {{ angajatTotalZile(a.id) }} | {{ angajatSantierAzi(a.id).santierNume }} Liber — | {{ a.tarif_zi > 0 ? formatRon(a.tarif_zi) : '—' }} | Activ Încheiat |
|
|
| {{ angajatSearchQuery.trim() ? 'Niciun muncitor găsit.' : 'Niciun angajat înregistrat.' }} | |||||
Data efectivă plată
{{ salarizarePerioadaInfo.payDate }}
{{ salarizarePerioadaInfo.payDateNominal }} nu e zi lucrătoare → plată {{ salarizarePerioadaInfo.payDate }}
{{ salarizarePerioadaInfo.tipLabel }}
Perioada pontaj plătită
{{ salarizarePerioadaInfo.periodStart }} – {{ salarizarePerioadaInfo.periodEnd }}
{{ formatLunaLabel(salarizarePerioadaInfo.lunaPerioada) }} – {{ formatLunaLabel(salarizarePerioadaInfo.lunaPerioadaEnd) }} Luna lucrată: {{ formatLunaLabel(salarizarePerioadaInfo.lunaPerioada) }} · {{ salarizarePerioadaInfo.zileLucratoarePerioada }} zile L–V în interval (inclusiv capetele)
Muncitori
{{ salarizareRanduri.length }}
Total zile lucrătoare de plată
{{ salarizareTotalZile }}
Total de plată (RON)
{{ formatRon(salarizareTotalSuma) }}
Doar Prezent = plătit · CO + Absent = neplătite · carduri 4 pe rând
{{ r.nume }} Încheiat
{{ r.santiere.length ? r.santiere.map(s => s.nume).join(', ') : 'Fără pontaj' }}
{{ r.dates.join(', ') }}
Plata în 20 acoperă pontajul 6–20 (inclusiv) din luna plății. Plata în 5 acoperă pontajul 21 (luna anterioară) până în 5 (inclusiv, luna plății). Se numără doar zilele lucrătoare (L–V) cu pontaj Prezent în perioadă. Concediu (CO) și Absent sunt neplătite. Dacă 5 sau 20 cade în weekend, data efectivă de plată este ultima zi lucrătoare anterioară.
Centralizator pontaj pe lună Contract încheiat
Lucrate
{{ angajatMinusInfo(actAngajat.id, angajatRaportLuna).prezent }}
Concediu
{{ angajatMinusInfo(actAngajat.id, angajatRaportLuna).co }}
Absent
{{ angajatMinusInfo(actAngajat.id, angajatRaportLuna).absent }}
Total plată
{{ angajatTotalZile(actAngajat.id, angajatRaportLuna) }}
Doar Prezent = plătit · Concediu (CO) + Absent = neplătite
{{ row.nume }}
| Dată | Șantier |
|---|---|
| {{ it.data }} | {{ it.santierNume }} |
Vezi pe ce șantier a fost băgat pontajul, ca să corectezi dacă e greșit.
| Dată | Status | Șantier |
|---|---|---|
| {{ it.data }} | {{ it.statusLabel }} | {{ it.santierNume }} |
{{d.telefon}}
Aceste date sunt prestatorul implicit pe toate devizele. Pe un deviz poți bifa „Alt prestator” și completa alt nume + CUI.
Logo documente
Iconiță PWA (PNG)
După salvare, poți instala aplicația din browser (Adaugă pe ecran / Instalează).
Următorul nr.
{{ peekNextDevizNr() }}
Ex.: serie ATG + nr. 1 → ATG0001, apoi ATG0002… Seria se salvează cu litere mari.
Încarcă un PNG (semnătură și ștampilă împreună). Pe fiecare deviz bifezi dacă vrei să apară overlay pe linia prestatorului. Lățimea e reglabilă; înălțimea păstrează proporțiile imaginii.
Fișier PNG
1.0 – 8.0 cm. Implicit 3 cm. Înălțimea se calculează automat după aspect.
Previzualizare mărime reală
Semnătură Prestator
Descarcă o copie a datelor pentru arhivă sau restaurare. SQL = backup complet (inclusiv logo). Excel = vizualizare / editare ușoară.
Pentru restaurare din SQL, rulează fișierul în phpMyAdmin sau MySQL. Logo-ul și iconița PWA sunt incluse doar în backup SQL.
Niciun client găsit.
Client nou
Implicit: {{ db.settings.nume || '—' }} (din Setări)
Încarcă PNG-ul în Setări, altfel nu apare pe PDF.
| Categorie | Calcul | Total | Gol? | |
|---|---|---|---|---|
|
= {{l.rezultat}}
|
{{m.esteScadere?'-':''}}{{m.rezultatTotal}} |
Niciun client găsit.
Prestator implicit: {{ db.settings.nume || '—' }}
Încarcă PNG-ul în Setări.
Actual{{ tvaPctAct() > 0 ? ' cu TVA' : '' }}: {{ formatRon(totalCuTvaDevizLucrari()) }} / {{ formatRon(actDeviz.buget_total) }} RON
{{ db.norme_proprii.length }} norme · cod sau descriere
Fără norme — tab Norme → Re-sincronizează Excel
Se caută...
Niciun rezultat.
| Cod | Descriere | Cant. | UM | Preț u. | Total | ||||
|---|---|---|---|---|---|---|---|---|---|
|
există în norme Sugestii
|
{{formatRon(calcArticolTotal(a))}} | ||||||||
|
Preț articol = {{ formatRon(articolPretUnitar(a)) }} RON / {{ a.um || 'UM' }}
|
|||||||||
| Caută o normă sau adaugă un rând manual. | |||||||||
| Total manoperă / materiale / utilaje | {{ formatRon(totalDevizManopera()) }} / {{ formatRon(totalDevizMateriale()) }} / {{ formatRon(totalDevizUtilaje()) }} | ||||||||
| Total fără TVA: | {{formatRon(totalDevizLucrari())}} RON | ||||||||
| TVA ({{normalizeTvaProcent(actDeviz.tva_procent)}}%): | {{formatRon(tvaDevizLucrari())}} RON | ||||||||
| Total cu TVA: | {{formatRon(totalCuTvaDevizLucrari())}} RON | ||||||||
| Total: | {{formatRon(totalDevizLucrari())}} RON | ||||||||
| Buget setat{{ tvaPctAct() > 0 ? ' (cu TVA)' : '' }}: | {{ formatRon(actDeviz.buget_total) }} RON | ||||||||
Caută după cod sau descriere, apoi apasă Folosește.
| Cod | Descriere | UM | Preț | |
|---|---|---|---|---|
| {{n.cod}} | {{n.firma}}{{n.descriere}} | {{n.um}} | {{Number(n.pret_unitar).toFixed(2)}} | |
| Nicio normă găsită pentru căutarea ta. | ||||
{{ excelImport.fileName }} · {{ excelImport.parsed.length }} articole · format {{ excelImport.format }}
Previzualizare (primele 8 rânduri)
| Cod | Descriere | UM | Cant. | Preț |
|---|---|---|---|---|
| {{row.cod}} | {{row.descriere}} | {{row.um}} | {{row.cantitate}} | {{Number(row.pret_unitar).toFixed(2)}}din normedin Excellipsă |