{{ 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.nume }} | {{ 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 (plătit)
A = Absent (fără plată)
| Nr | Dată | Muncitori | Nume / status | |
|---|---|---|---|---|
| {{ zIdx + 1 }} | {{ zi.data }} | {{ zi.count }} | {{ zi.muncitoriLabel }} | |
| Nicio zi înregistrată{{ santierRaportLuna ? ' în această lună' : '' }}. | ||||
Prezent + Concediu = plătite · Absent = neplătit
{{ getAngajatName(g.angajatId) }}
| 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) }}
Muncitori
{{ salarizareRanduri.length }}
Total zile lucrătoare de plată
{{ salarizareTotalZile }}
Total de plată (RON)
{{ formatRon(salarizareTotalSuma) }}
Prezent + Concediu = plătite · Absent = neplătit · carduri 4 pe rând
{{ r.nume }} Încheiat
{{ r.santiere.length ? r.santiere.map(s => s.nume).join(', ') : 'Fără pontaj' }}
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 în perioadă. 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) }}
Prezent + Concediu = plătite · Absent = neplătit
{{ row.nume }}
{{ angajatZileLucrateList(actAngajat.id, angajatRaportLuna).join(', ') }}
{{ angajatMinusInfo(actAngajat.id, angajatRaportLuna).dates.join(', ') }}
{{d.telefon}}
Logo documente
Iconiță PWA (PNG)
După salvare, poți instala aplicația din browser (Adaugă pe ecran / Instalează).
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
| Categorie | Calcul | Total | Gol? | |
|---|---|---|---|---|
|
= {{l.rezultat}}
|
{{m.esteScadere?'-':''}}{{m.rezultatTotal}} |
Niciun client găsit.
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ă |