Manual ROAIMOB refacut in stilul ROAAUTO (docx + pdf, v. 01.10.2026)
- generat de build_manual_ROAIMOB.py; cele 15 poze existente pastrate - adaugate Copiere, Transformare in N MF, prag fiscal 5.000 lei (OUG 8/2026) - .doc vechi inlocuit de .docx; CLAUDE.md: sectiunea ROAIMOB Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hmc2BoKFNEQQWbj3ztiusQ
This commit is contained in:
11
CLAUDE.md
11
CLAUDE.md
@@ -39,3 +39,14 @@ Orice modificare de continut se face in **toate 4**.
|
|||||||
foloseste `.encode('ascii','replace')`.
|
foloseste `.encode('ascii','replace')`.
|
||||||
- `pdftotext` pierde diacriticele la afisare. E doar o problema de afisare, PDF-ul e corect.
|
- `pdftotext` pierde diacriticele la afisare. E doar o problema de afisare, PDF-ul e corect.
|
||||||
- Versiunea anterioara a PDF-ului (pentru diff la istoric) e cea din `D:\ROA\ROAAUTO\Help\` inainte de copiere.
|
- Versiunea anterioara a PDF-ului (pentru diff la istoric) e cea din `D:\ROA\ROAAUTO\Help\` inainte de copiere.
|
||||||
|
|
||||||
|
## Manual ROAIMOB - docx + pdf (fara md/txt)
|
||||||
|
|
||||||
|
| Fisier | Rol |
|
||||||
|
|---|---|
|
||||||
|
| `build_manual_ROAIMOB.py` | genereaza `manualROAIMOB.docx` (stil clonat din `manual_ROAAUTO.docx`, poze din `pozeROAIMOB\`) |
|
||||||
|
| `manualROAIMOB.pdf` | generat din docx cu soffice (comanda de mai sus) |
|
||||||
|
|
||||||
|
- Modificarile se fac in **script**, nu direct in docx. Ruleaza `python build_manual_ROAIMOB.py`, apoi soffice, apoi verificarea vizuala.
|
||||||
|
- Versiunea si istoricul urmeaza aceleasi reguli ca la ROAAUTO.
|
||||||
|
- Livrare: copiezi pdf-ul in `D:\ROA\ROAIMOB\Help\manual_ROAIMOB.pdf` (comis in SVN). Se deschide din Ajutor -> Instructiuni de utilizare (`lansare_help_meniu`, COMUN r18244). La release, Marius il copiaza in `Y:\ROAUPDATE\ROAIMOB\Help\`, ca sa intre in zip-ul de update.
|
||||||
|
|||||||
642
build_manual_ROAIMOB.py
Normal file
642
build_manual_ROAIMOB.py
Normal file
@@ -0,0 +1,642 @@
|
|||||||
|
# Genereaza manualROAIMOB.docx in stilul manual_ROAAUTO.docx (clonare elemente model, doar textul se schimba).
|
||||||
|
# Rulare: python build_manual_ROAIMOB.py (din D:\ROA\Manual ROA)
|
||||||
|
import copy
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
|
||||||
|
import docx
|
||||||
|
from docx.shared import Cm
|
||||||
|
from docx.oxml import OxmlElement
|
||||||
|
from docx.oxml.ns import qn
|
||||||
|
from docx.text.paragraph import Paragraph
|
||||||
|
from docx.enum.text import WD_ALIGN_PARAGRAPH
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
|
BASE = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
POZE = os.path.join(BASE, 'pozeROAIMOB')
|
||||||
|
OUT = os.path.join(BASE, 'manualROAIMOB.docx')
|
||||||
|
|
||||||
|
doc = docx.Document(os.path.join(BASE, 'manual_ROAAUTO.docx'))
|
||||||
|
body = doc.element.body
|
||||||
|
els = list(body.iterchildren())
|
||||||
|
W = qn
|
||||||
|
|
||||||
|
|
||||||
|
def tpl(i):
|
||||||
|
return copy.deepcopy(els[i])
|
||||||
|
|
||||||
|
|
||||||
|
# Elemente model din manual_ROAAUTO.docx (indici in body)
|
||||||
|
T = dict(title=tpl(0), ver=tpl(1), sub=tpl(2), h1=tpl(3), h2=tpl(4), empty=tpl(6), body=tpl(8),
|
||||||
|
h3=tpl(56), note=tpl(58), num=tpl(50), tbl=tpl(5), warn=tpl(25), info=tpl(60), code=tpl(37),
|
||||||
|
footer=tpl(141))
|
||||||
|
|
||||||
|
|
||||||
|
def rpr_of(el, path):
|
||||||
|
return copy.deepcopy(el.findall('.//' + W('w:r'))[path].find(W('w:rPr')))
|
||||||
|
|
||||||
|
|
||||||
|
tr_hdr = T['tbl'].findall(W('w:tr'))[0]
|
||||||
|
tr_row = T['tbl'].findall(W('w:tr'))[1]
|
||||||
|
R = dict(
|
||||||
|
body=rpr_of(T['body'], 0),
|
||||||
|
bodyb=rpr_of(tpl(21), 0),
|
||||||
|
num=rpr_of(T['num'], 0),
|
||||||
|
cell=rpr_of(tr_row, 0),
|
||||||
|
path=rpr_of(tr_row, 2),
|
||||||
|
arrow=rpr_of(tr_row, 3),
|
||||||
|
hdr=rpr_of(tr_hdr, 0),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def bold(rpr):
|
||||||
|
r = copy.deepcopy(rpr)
|
||||||
|
if r.find(W('w:b')) is None:
|
||||||
|
b = OxmlElement('w:b')
|
||||||
|
r.insert(1, b)
|
||||||
|
r.insert(2, OxmlElement('w:bCs'))
|
||||||
|
return r
|
||||||
|
|
||||||
|
|
||||||
|
def mkrun(text, rpr):
|
||||||
|
r = OxmlElement('w:r')
|
||||||
|
r.append(copy.deepcopy(rpr))
|
||||||
|
t = OxmlElement('w:t')
|
||||||
|
t.set('{http://www.w3.org/XML/1998/namespace}space', 'preserve')
|
||||||
|
t.text = text
|
||||||
|
r.append(t)
|
||||||
|
return r
|
||||||
|
|
||||||
|
|
||||||
|
def fill(p, text, base='body'):
|
||||||
|
"""Inlocuieste run-urile lui p. Markup: **bold**, `Cale → Meniu` (Courier rosu, sageti gri)."""
|
||||||
|
for r in p.findall(W('w:r')):
|
||||||
|
p.remove(r)
|
||||||
|
rn = R['cell'] if base == 'cell' else R['body']
|
||||||
|
rb = bold(rn)
|
||||||
|
for tok in re.split(r'(\*\*.+?\*\*|`.+?`)', text):
|
||||||
|
if not tok:
|
||||||
|
continue
|
||||||
|
if tok.startswith('**'):
|
||||||
|
p.append(mkrun(tok[2:-2], rb))
|
||||||
|
elif tok.startswith('`'):
|
||||||
|
parts = tok[1:-1].split(' → ')
|
||||||
|
for k, part in enumerate(parts):
|
||||||
|
if k:
|
||||||
|
p.append(mkrun(' → ', R['arrow']))
|
||||||
|
p.append(mkrun(part, R['path']))
|
||||||
|
else:
|
||||||
|
p.append(mkrun(tok, rn))
|
||||||
|
return p
|
||||||
|
|
||||||
|
|
||||||
|
sectPr = body.find(W('w:sectPr'))
|
||||||
|
for el in list(body):
|
||||||
|
if el is not sectPr:
|
||||||
|
body.remove(el)
|
||||||
|
|
||||||
|
|
||||||
|
def add(el):
|
||||||
|
sectPr.addprevious(el)
|
||||||
|
return el
|
||||||
|
|
||||||
|
|
||||||
|
def keep_next(p):
|
||||||
|
Paragraph(p, doc).paragraph_format.keep_with_next = True
|
||||||
|
return p
|
||||||
|
|
||||||
|
|
||||||
|
def para(kind, text=''):
|
||||||
|
p = copy.deepcopy(T[kind])
|
||||||
|
if kind in ('title', 'ver', 'sub', 'footer', 'note', 'h1', 'h2', 'h3'):
|
||||||
|
for r in p.findall(W('w:r'))[1:]:
|
||||||
|
p.remove(r)
|
||||||
|
p.find('.//' + W('w:t')).text = text
|
||||||
|
else:
|
||||||
|
fill(p, text)
|
||||||
|
if kind in ('h1', 'h2', 'h3'):
|
||||||
|
keep_next(p)
|
||||||
|
return add(p)
|
||||||
|
|
||||||
|
|
||||||
|
def H1(t): return para('h1', t)
|
||||||
|
def H2(t): return para('h2', t)
|
||||||
|
def H3(t): return para('h3', t)
|
||||||
|
def P(t): return para('body', t)
|
||||||
|
def NOTE(t): return para('note', t)
|
||||||
|
def EMPTY(): return add(copy.deepcopy(T['empty']))
|
||||||
|
|
||||||
|
|
||||||
|
def STEPS(items):
|
||||||
|
for i, t in enumerate(items, 1):
|
||||||
|
p = copy.deepcopy(T['num'])
|
||||||
|
fill(p, t)
|
||||||
|
p.insert(1, mkrun('%d. ' % i, R['num']))
|
||||||
|
add(p)
|
||||||
|
|
||||||
|
|
||||||
|
def set_shd(tc, fill_color):
|
||||||
|
tc.find(W('w:tcPr')).find(W('w:shd')).set(W('w:fill'), fill_color)
|
||||||
|
|
||||||
|
|
||||||
|
def TABLE(headers, rows, widths):
|
||||||
|
t = copy.deepcopy(T['tbl'])
|
||||||
|
for tr in t.findall(W('w:tr')):
|
||||||
|
t.remove(tr)
|
||||||
|
grid = t.find(W('w:tblGrid'))
|
||||||
|
for g in list(grid):
|
||||||
|
grid.remove(g)
|
||||||
|
for w in widths:
|
||||||
|
g = OxmlElement('w:gridCol')
|
||||||
|
g.set(W('w:w'), str(w))
|
||||||
|
grid.append(g)
|
||||||
|
|
||||||
|
def mkrow(tr_t, cells, color=None, hdr=False):
|
||||||
|
tr = copy.deepcopy(tr_t)
|
||||||
|
tcs = tr.findall(W('w:tc'))
|
||||||
|
tc_t = tcs[0]
|
||||||
|
for tc in tcs:
|
||||||
|
tr.remove(tc)
|
||||||
|
if not hdr:
|
||||||
|
trPr = tr.find(W('w:trPr'))
|
||||||
|
if trPr is None:
|
||||||
|
trPr = OxmlElement('w:trPr')
|
||||||
|
tr.insert(0, trPr)
|
||||||
|
trPr.append(OxmlElement('w:cantSplit'))
|
||||||
|
for text, w in zip(cells, widths):
|
||||||
|
tc = copy.deepcopy(tc_t)
|
||||||
|
tc.find(W('w:tcPr')).find(W('w:tcW')).set(W('w:w'), str(w))
|
||||||
|
if color:
|
||||||
|
set_shd(tc, color)
|
||||||
|
p = tc.find(W('w:p'))
|
||||||
|
if hdr:
|
||||||
|
for r in p.findall(W('w:r')):
|
||||||
|
p.remove(r)
|
||||||
|
p.append(mkrun(text, R['hdr']))
|
||||||
|
else:
|
||||||
|
fill(p, text, 'cell')
|
||||||
|
tr.append(tc)
|
||||||
|
return tr
|
||||||
|
|
||||||
|
t.append(mkrow(tr_hdr, headers, hdr=True))
|
||||||
|
for i, row in enumerate(rows):
|
||||||
|
t.append(mkrow(tr_row, row, 'FFFFFF' if i % 2 == 0 else 'F2F4F8'))
|
||||||
|
if len(rows) <= 12: # tabel scurt: nu se rupe intre pagini
|
||||||
|
for tr in t.findall(W('w:tr'))[:-1]:
|
||||||
|
for p in tr.iter(W('w:p')):
|
||||||
|
keep_next(p)
|
||||||
|
add(t)
|
||||||
|
EMPTY()
|
||||||
|
|
||||||
|
|
||||||
|
def no_split(t):
|
||||||
|
tr = t.find(W('w:tr'))
|
||||||
|
trPr = tr.find(W('w:trPr'))
|
||||||
|
if trPr is None:
|
||||||
|
trPr = OxmlElement('w:trPr')
|
||||||
|
tr.insert(0, trPr)
|
||||||
|
trPr.append(OxmlElement('w:cantSplit'))
|
||||||
|
return t
|
||||||
|
|
||||||
|
|
||||||
|
def BOX(text, kind='warn'):
|
||||||
|
t = no_split(copy.deepcopy(T[kind]))
|
||||||
|
fill(t.find('.//' + W('w:p')), text)
|
||||||
|
add(t)
|
||||||
|
EMPTY()
|
||||||
|
|
||||||
|
|
||||||
|
def CODE(lines):
|
||||||
|
t = no_split(copy.deepcopy(T['code']))
|
||||||
|
tc = t.find('.//' + W('w:tc'))
|
||||||
|
ps = tc.findall(W('w:p'))
|
||||||
|
for p in ps[1:]:
|
||||||
|
tc.remove(p)
|
||||||
|
for line in lines:
|
||||||
|
p = copy.deepcopy(ps[0])
|
||||||
|
p.find('.//' + W('w:t')).text = line
|
||||||
|
tc.append(p)
|
||||||
|
tc.remove(ps[0])
|
||||||
|
add(t)
|
||||||
|
EMPTY()
|
||||||
|
|
||||||
|
|
||||||
|
def poza(nr):
|
||||||
|
for f in os.listdir(POZE):
|
||||||
|
if f.split('_')[0] == str(nr) or f.split(' ')[0] == str(nr):
|
||||||
|
return os.path.join(POZE, f)
|
||||||
|
raise FileNotFoundError(nr)
|
||||||
|
|
||||||
|
|
||||||
|
IMG_LOG = []
|
||||||
|
|
||||||
|
|
||||||
|
def IMG(nr, caption, max_w=16.0, max_h=9.0):
|
||||||
|
path = poza(nr)
|
||||||
|
w_px, h_px = Image.open(path).size
|
||||||
|
w = min(max_w, w_px / 96 * 2.54)
|
||||||
|
h = w * h_px / w_px
|
||||||
|
if h > max_h:
|
||||||
|
w = max_h * w_px / h_px
|
||||||
|
p = doc.add_paragraph() # se insereaza inaintea sectPr, deci in ordine
|
||||||
|
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
||||||
|
p.paragraph_format.keep_with_next = True
|
||||||
|
p.paragraph_format.space_before = Cm(0.2)
|
||||||
|
p.paragraph_format.space_after = Cm(0)
|
||||||
|
p.add_run().add_picture(path, width=Cm(w))
|
||||||
|
c = para('note', caption)
|
||||||
|
Paragraph(c, doc).alignment = WD_ALIGN_PARAGRAPH.CENTER
|
||||||
|
IMG_LOG.append((nr, caption))
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================ CONTINUT
|
||||||
|
para('title', 'Manual ROAIMOB — Imobilizări')
|
||||||
|
para('ver', 'v. 01.10.2026')
|
||||||
|
para('sub', 'Evidența imobilizărilor corporale, necorporale și în curs — de la intrarea în patrimoniu '
|
||||||
|
'până la ieșirea din gestiune.')
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- Quickstart
|
||||||
|
H1('Quickstart — Operații uzuale')
|
||||||
|
NOTE('Capturile de ecran sunt din versiuni mai vechi ale programului. Aspectul poate diferi puțin, '
|
||||||
|
'dar denumirile și pașii sunt aceiași.')
|
||||||
|
P('**Firma, anul și luna contabilă** le schimbi cu **click dreapta pe imaginea de fundal** a aplicației. '
|
||||||
|
'Se deschide formularul „Alegeți firma / anul / luna”: alegi **Firma**, **Anul** și **Luna**, apoi '
|
||||||
|
'confirmi cu butonul **Terminare** (Ctrl+F).')
|
||||||
|
|
||||||
|
H2('Scenariul 1 — Introducere mijloc fix nou')
|
||||||
|
P('Folosești **Introducere** când achiziția nu este încă înregistrată în contabilitate.')
|
||||||
|
TABLE(['Pas', 'Ce faci', 'Unde'], [
|
||||||
|
['1', 'Deschizi formularul de introducere', '`Imobilizări corporale → Introducere`'],
|
||||||
|
['2', 'Completezi denumirea, codul din catalog, durata normală de serviciu (DNS), contul și numărul de inventar',
|
||||||
|
'Formularul „Introducere imobilizări”'],
|
||||||
|
['3', 'Completezi documentul de achiziție: număr, dată, valoare', 'Tot în formular'],
|
||||||
|
['4', 'Completezi numărul și data PIF, tipul de amortizare, gestiunea, responsabilul', 'Tot în formular'],
|
||||||
|
['5', 'Bifezi, dacă e cazul, „Bun de capital” și „Amort. max. deductibil”', 'Tot în formular'],
|
||||||
|
['6', 'Validezi cu butonul verde ✓. Programul întreabă dacă mai introduci o imobilizare', '—'],
|
||||||
|
], [600, 4700, 3900])
|
||||||
|
P('Din 2026, pragul fiscal pentru mijloc fix este **5.000 lei** (vezi Capcane frecvente). '
|
||||||
|
'Programul nu verifică pragul la introducere.')
|
||||||
|
IMG(4, 'Formularul de introducere a unei imobilizări noi')
|
||||||
|
|
||||||
|
H2('Scenariul 2 — Preluare din contabilitate')
|
||||||
|
P('Folosești **Preluare din contabilitate** când achiziția este deja înregistrată în ROACONT. '
|
||||||
|
'Numărul, data și valoarea documentului se preiau din contabilitate.')
|
||||||
|
TABLE(['Pas', 'Ce faci', 'Unde'], [
|
||||||
|
['1', 'Deschizi lista documentelor de achiziție', '`Imobilizări corporale → Preluare din contabilitate`'],
|
||||||
|
['2', 'Alegi documentul de achiziție din listă', 'Fereastra „Documente achiziție”'],
|
||||||
|
['3', 'Completezi ce lipsește: cod, DNS, tip amortizare, gestiune, responsabil', 'Formularul de introducere'],
|
||||||
|
['4', 'Validezi cu butonul verde ✓', '—'],
|
||||||
|
], [600, 4700, 3900])
|
||||||
|
P('Se preia și contul analitic din nota contabilă. Apar și documentele cu dată de achiziție din lunile '
|
||||||
|
'anterioare, înregistrate în luna curentă.')
|
||||||
|
|
||||||
|
H2('Scenariul 3 — Amortizare lunară, verificare și notă de închidere')
|
||||||
|
P('Rata lunară se calculează de program pentru luna contabilă deschisă. Tu verifici și listezi nota.')
|
||||||
|
TABLE(['Pas', 'Ce faci', 'Unde'], [
|
||||||
|
['1', 'Deschizi lista și verifici rata lunii (coloana „Amortizment lunar”)',
|
||||||
|
'`Imobilizări corporale → Vizualizare amortizare contabilă`'],
|
||||||
|
['2', 'Apeși butonul **Verifică** (două semne de exclamare, dreapta sus). Compară conturile cu ROACONT',
|
||||||
|
'Lista imobilizărilor'],
|
||||||
|
['3', 'Dacă apar diferențe, corectezi conturile indicate', 'ROAIMOB sau ROACONT'],
|
||||||
|
['4', 'Listezi nota de închidere a amortizării',
|
||||||
|
'`Situații analitice → Rapoarte → Închidere imobilizări corporale`'],
|
||||||
|
['5', 'Repeți pentru imobilizările necorporale', '`Imobilizări necorporale`'],
|
||||||
|
], [600, 4700, 3900])
|
||||||
|
IMG(7, 'Verificare cu contabilitatea: valorile sunt egale')
|
||||||
|
IMG(8, 'Verificare cu contabilitatea: conturile cu diferențe')
|
||||||
|
IMG(9, 'Meniul pentru nota de închidere a amortizării')
|
||||||
|
IMG(10, 'Nota de închidere a amortizării imobilizărilor corporale')
|
||||||
|
|
||||||
|
H2('Scenariul 4 — Transformare imobilizare în curs în mijloc fix')
|
||||||
|
TABLE(['Pas', 'Ce faci', 'Unde'], [
|
||||||
|
['1', 'Deschizi lista imobilizărilor în curs', '`Imobilizări în curs → Vizualizare`'],
|
||||||
|
['2', 'Bifezi coloana „Ales” la imobilizările care formează mijlocul fix', 'Lista imobilizărilor în curs'],
|
||||||
|
['3', 'Modifici „Valoare reținută” dacă nu transformi toată valoarea', 'Tot în listă'],
|
||||||
|
['4', 'Apeși **Operațiuni** și alegi tipul transformării (tabelul de mai jos)', 'Tot în listă'],
|
||||||
|
['5', 'Completezi formularul mijlocului fix, ca la introducere, și validezi cu ✓', '—'],
|
||||||
|
], [600, 4700, 3900])
|
||||||
|
TABLE(['Opțiune din Operațiuni', 'Rezultat'], [
|
||||||
|
['Transformare în imobilizare corporală / necorporală', 'Un mijloc fix nou, cu valoarea egală cu suma valorilor reținute'],
|
||||||
|
['Adăugare la imobilizare corporală / necorporală', 'Majorare pe un mijloc fix existent. Scade valoarea imobilizării în curs'],
|
||||||
|
['Transformare în N imobilizări corporale / necorporale',
|
||||||
|
'N mijloace fixe identice dintr-o singură imobilizare în curs (vezi capitolul Imobilizări în curs)'],
|
||||||
|
], [4200, 5000])
|
||||||
|
IMG(11, 'Alegerea imobilizărilor în curs care se transformă (ecran vechi; azi bifezi coloana „Ales” din listă)')
|
||||||
|
IMG(12, 'Formularul mijlocului fix obținut din imobilizări în curs')
|
||||||
|
|
||||||
|
H2('Scenariul 5 — Ieșire din gestiune (vânzare, casare)')
|
||||||
|
TABLE(['Pas', 'Ce faci', 'Unde'], [
|
||||||
|
['1', 'Selectezi mijlocul fix', '`Imobilizări corporale → Vizualizare amortizare contabilă`'],
|
||||||
|
['2', 'Apeși **Operațiuni** și alegi „ieșire din gestiune”', 'Fereastra „Alegeți operațiunea”'],
|
||||||
|
['3', 'Completezi data și numărul documentului, tipul (vânzare, casare etc.), explicația și data ieșirii',
|
||||||
|
'Fereastra „Ieșire din gestiune”'],
|
||||||
|
['4', 'Validezi cu butonul verde ✓', '—'],
|
||||||
|
['5', 'Tipărești procesul-verbal de casare', 'Lista → **Listare** → „Proces-verbal de casare”'],
|
||||||
|
], [600, 4700, 3900])
|
||||||
|
IMG(6, 'Ieșire din gestiune: documentul, tipul și data ieșirii')
|
||||||
|
|
||||||
|
H2('Scenariul 6 — Operații pe durata de folosire')
|
||||||
|
TABLE(['Pas', 'Ce faci', 'Unde'], [
|
||||||
|
['1', 'Selectezi mijlocul fix', '`Imobilizări corporale → Vizualizare amortizare contabilă`'],
|
||||||
|
['2', 'Apeși **Operațiuni**', 'Lista imobilizărilor'],
|
||||||
|
['3', 'Alegi operația și validezi cu ✓', 'Fereastra „Alegeți operațiunea”'],
|
||||||
|
['4', 'Completezi documentul și valorile cerute, apoi validezi', 'Fereastra operației'],
|
||||||
|
], [600, 4700, 3900])
|
||||||
|
TABLE(['Operație', 'Când o folosești'], [
|
||||||
|
['majorarea valorii de intrare', 'Investiții care modifică valoarea (pozitiv sau negativ)'],
|
||||||
|
['reevaluarea valorii de intrare', 'Reevaluarea mijlocului fix'],
|
||||||
|
['conservare / scoatere din conservare', 'Mijlocul fix intră în conservare sau iese din conservare'],
|
||||||
|
['schimbare DNS', 'Se modifică durata normală de serviciu'],
|
||||||
|
['schimbare DNS + reevaluare', 'Modifici împreună valoarea de inventar, amortizarea totală, DNS, uzura totală, valoarea reziduală'],
|
||||||
|
['ieșire / intrare în gestiune', 'Vânzare, casare etc. (Scenariul 5); intrarea anulează o ieșire'],
|
||||||
|
], [3800, 5400])
|
||||||
|
IMG(5, 'Fereastra „Alegeți operațiunea” deschisă din lista imobilizărilor corporale')
|
||||||
|
|
||||||
|
H2('Scenariul 7 — Copiere imobilizare')
|
||||||
|
P('Copiezi când introduci un mijloc fix asemănător cu unul existent.')
|
||||||
|
TABLE(['Pas', 'Ce faci', 'Unde'], [
|
||||||
|
['1', 'Selectezi mijlocul fix sursă', '`Imobilizări corporale → Vizualizare amortizare contabilă`'],
|
||||||
|
['2', 'Apeși butonul **Copiază** (dreapta sus)', 'Lista imobilizărilor'],
|
||||||
|
['3', 'Se deschide formularul de introducere, completat cu situația din luna curentă', 'Titlul „Copie după nr. inv. …”'],
|
||||||
|
['4', 'Modifici ce diferă (denumire, număr de inventar, valori) și validezi cu ✓', 'Tot în formular'],
|
||||||
|
['5', 'Programul întreabă dacă mai creezi o copie după același mijloc fix', '—'],
|
||||||
|
], [600, 4700, 3900])
|
||||||
|
|
||||||
|
H2('Scenariul 8 — Rapoarte')
|
||||||
|
TABLE(['Ce cauți', 'Unde'], [
|
||||||
|
['Amortizări lunare, fișe, listă de inventar pentru selecția din listă', 'Lista → **Listare**'],
|
||||||
|
['Situația lunară, lista fișelor, lista de inventar, evidența MF', '`Imobilizări corporale → Rapoarte`'],
|
||||||
|
['Rulajul și totalul amortismentelor', '`Situații analitice → Rulaj amortismente`'],
|
||||||
|
['Nota de închidere a amortizării', '`Situații analitice → Rapoarte`'],
|
||||||
|
['Datele din listă în Excel', 'Lista → butonul **Excel**'],
|
||||||
|
], [4600, 4600])
|
||||||
|
IMG(13, 'Raportul „Evidența mijloacelor fixe” în previzualizare')
|
||||||
|
IMG(14, 'Meniul Rapoarte al paginii Imobilizări corporale')
|
||||||
|
IMG(15, 'Evidența mijloacelor fixe listată din meniul Rapoarte')
|
||||||
|
|
||||||
|
H2('Capcane frecvente')
|
||||||
|
BOX('**Pragul fiscal pentru mijloc fix este 5.000 lei începând cu anul fiscal 2026** (anterior 2.500 lei). '
|
||||||
|
'Codul fiscal art. 28 alin. (2) lit. b), modificat prin OUG 8/2026 (MO nr. 147/25.02.2026), art. 6 pct. 7 '
|
||||||
|
'și art. 10 alin. (2). Mijloacele fixe cu valoarea fiscală de intrare între 2.500 și 5.000 lei, existente '
|
||||||
|
'la 31.12.2025, se amortizează în continuare pe durata normală rămasă (art. 45 alin. (21³)). '
|
||||||
|
'OUG 8/2026 nu modifică reglementările contabile: pragul contabil îl stabilește politica contabilă a '
|
||||||
|
'firmei. Programul nu verifică pragul.')
|
||||||
|
BOX('**Numărul de inventar duplicat nu este blocat.** Programul te avertizează la introducere, dar permite '
|
||||||
|
'salvarea. Verifică „Registrul numerelor de inventar” înainte să confirmi.')
|
||||||
|
BOX('**Autoturismele din contul 2133 au amortizarea deductibilă limitată.** Pentru vehiculele de categoria M1 '
|
||||||
|
'(cel mult 9 locuri, inclusiv șoferul), Codul fiscal (art. 28 alin. (14)) limitează amortizarea deductibilă '
|
||||||
|
'la 1.500 lei/lună, cu excepțiile prevăzute de lege (taxi, curierat, închiriere, agenți de vânzări etc.). '
|
||||||
|
'Bifezi „Amort. max. deductibil” și completezi plafonul lunar. Nota de închidere separă partea '
|
||||||
|
'deductibilă de cea nedeductibilă.')
|
||||||
|
BOX('**Fără bifa „Amort. max. deductibil”, toată amortizarea este deductibilă.** Cu bifa activă și valoarea 0, '
|
||||||
|
'toată amortizarea este nedeductibilă. Folosești 0 de exemplu la un mijloc fix amortizat integral și reevaluat.')
|
||||||
|
BOX('**O singură operație de valoare pe mijloc fix pe lună.** Două operații pe același mijloc fix în aceeași lună '
|
||||||
|
'(de exemplu majorare și reevaluare) pot da calcule greșite. Cumulează-le într-o singură operație.')
|
||||||
|
BOX('**Operațiile se fac doar din „Vizualizare amortizare contabilă”.** Dacă ștergi o operație din lista '
|
||||||
|
'contabilă, o ștergi și din „Vizualizare amortizare fiscală”. Altfel cele două situații nu mai corespund.')
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- Privire de ansamblu
|
||||||
|
H1('Fluxul de lucru — Privire de ansamblu')
|
||||||
|
CODE(['[1] Introducere sau preluare din contabilitate',
|
||||||
|
' ↓',
|
||||||
|
'[2] Amortizare lunară (calculată de program) + verificare cu ROACONT',
|
||||||
|
' ↓',
|
||||||
|
'[3] Operații: majorare, reevaluare, conservare, DNS, gestiune',
|
||||||
|
' ↓',
|
||||||
|
'[4] Nota de închidere a amortizării',
|
||||||
|
' ↓',
|
||||||
|
'[5] Ieșire din gestiune: vânzare, casare'])
|
||||||
|
|
||||||
|
H2('Accesul în aplicație')
|
||||||
|
P('Pornești ROAIMOB din lansatorul ROA: `Managementul imobilizărilor → Imobilizări`. '
|
||||||
|
'Firma, anul și luna se schimbă cu **click dreapta pe imaginea de fundal**, în formularul '
|
||||||
|
'„Alegeți firma / anul / luna”.')
|
||||||
|
IMG(1, 'Lansarea aplicației din lansatorul ROA')
|
||||||
|
|
||||||
|
H2('Cele două axe ale ecranului')
|
||||||
|
P('**Axa orizontală** conține, de sus în jos:')
|
||||||
|
STEPS(['Bara de informare: aplicația, firma și luna contabilă', 'Meniul: Utile, Editare, Inițializare, Ajutor',
|
||||||
|
'Iconițele de acces rapid în celelalte aplicații ROA, pe aceeași firmă și lună',
|
||||||
|
'Paginile: Situații analitice, Imobilizări corporale, Imobilizări necorporale, Imobilizări în curs'])
|
||||||
|
P('**Axa verticală** se schimbă cu pagina aleasă. Conține operațiile, vizualizarea și rapoartele paginii.')
|
||||||
|
IMG(2, 'Axa orizontală și bara verticală a paginii Imobilizări în curs')
|
||||||
|
TABLE(['Pagina', 'Bara verticală'], [
|
||||||
|
['**Situații analitice**', 'Istoric operații, Rulaj amortismente, Total amortismente, Rapoarte (nota de închidere)'],
|
||||||
|
['**Imobilizări corporale**', 'Introducere, Preluare din contabilitate, Vizualizare amortizare contabilă, '
|
||||||
|
'Vizualizare amortizare fiscală, Rapoarte, Bunuri de capital'],
|
||||||
|
['**Imobilizări necorporale**', 'La fel ca la corporale, fără Bunuri de capital'],
|
||||||
|
['**Imobilizări în curs**', 'Introducere, Preluare din contabilitate, Vizualizare, Rapoarte'],
|
||||||
|
], [3000, 6200])
|
||||||
|
IMG(3, 'Bara verticală a paginii Imobilizări corporale')
|
||||||
|
|
||||||
|
H2('Amortizare contabilă și amortizare fiscală')
|
||||||
|
P('Pentru imobilizările corporale și necorporale programul ține separat amortizarea contabilă și amortizarea '
|
||||||
|
'fiscală. Le vezi în două liste: „Vizualizare amortizare contabilă” și „Vizualizare amortizare fiscală”.')
|
||||||
|
BOX('**Toate operațiile se fac din „Vizualizare amortizare contabilă”.** Lista fiscală nu are butoanele '
|
||||||
|
'Operațiuni, Modifică, Copiază și Șterge.', 'info')
|
||||||
|
|
||||||
|
H2('Meniul aplicației')
|
||||||
|
TABLE(['Meniu', 'Ce găsești'], [
|
||||||
|
['`Utile`', 'Intrare, Calculator, Notepad, Ieșire'],
|
||||||
|
['`Inițializare → Serii`', 'Seriile de numere, inclusiv pentru numerele de inventar'],
|
||||||
|
['`Ajutor`', 'Instrucțiuni de utilizare, Despre program, Jurnal modificări'],
|
||||||
|
], [3400, 5800])
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- Corporale
|
||||||
|
H1('Imobilizări corporale')
|
||||||
|
|
||||||
|
H2('Introducere și preluare')
|
||||||
|
P('Pașii sunt în Scenariile 1 și 2. Câmpurile principale ale formularului:')
|
||||||
|
TABLE(['Câmp', 'Ce completezi'], [
|
||||||
|
['**Denumire, Cod, Cont**', 'Denumirea, codul din catalogul de imobilizări și contul contabil'],
|
||||||
|
['**Nr. inventar**', 'Se propune din serie (`Inițializare → Serii`). La duplicat primești avertizare'],
|
||||||
|
['**Document achiziție**', 'Numărul, data și valoarea de achiziție'],
|
||||||
|
['**Nr. și data PIF**', 'Punerea în funcțiune'],
|
||||||
|
['**DNS, Tip amortizare**', 'Durata normală de serviciu, în luni, și metoda de amortizare'],
|
||||||
|
['**Amortizare și uzură precedentă**', 'Pentru mijloacele fixe parțial amortizate înainte de introducere'],
|
||||||
|
['**Valoare reziduală**', 'Valoarea care nu se amortizează'],
|
||||||
|
['**Gestiune, Secție, Responsabil, Lucrare**', 'Locul și persoana care răspunde de mijlocul fix'],
|
||||||
|
['**Amort. max. deductibil**', 'Plafonul lunar deductibil (vezi Capcane frecvente)'],
|
||||||
|
['**Bun de capital**', 'Urmărește ajustarea TVA dedus; cere cota TVA, prorata și baza TVA'],
|
||||||
|
], [3400, 5800])
|
||||||
|
P('Grupa „01. Obiecte de inventar” permite urmărirea obiectelor de inventar amortizate într-o singură lună.')
|
||||||
|
|
||||||
|
H2('Lista imobilizărilor')
|
||||||
|
P('Deschizi lista din `Imobilizări corporale → Vizualizare amortizare contabilă`. Bifezi criteriile '
|
||||||
|
'(număr document, denumire, număr de inventar, gestiune, cont etc.), completezi valorile și apeși **Caută**. '
|
||||||
|
'**Reset** golește criteriile. Click dreapta pe capul de tabel deschide filtrul rapid.')
|
||||||
|
TABLE(['Buton', 'Ce face'], [
|
||||||
|
['**Operațiuni**', 'Operațiile cu istoric (Scenariul 6)'],
|
||||||
|
['**Istoric Mișcări**', 'Operațiile și ratele mijlocului fix. Adaugi, modifici sau ștergi o operație, inclusiv numărul și data documentului'],
|
||||||
|
['**Modifică**', 'Atributele mijlocului fix: gestiune, responsabil, secție, lucrare etc.'],
|
||||||
|
['**Copiază**', 'Mijloc fix nou cu datele celui selectat (Scenariul 7)'],
|
||||||
|
['**Șterge**', 'Elimină mijlocul fix, după confirmare'],
|
||||||
|
['**Verifică**', 'Compară valorile pe conturi cu contabilitatea'],
|
||||||
|
['**Listare / Excel**', 'Rapoarte pentru selecția din listă / export în Excel'],
|
||||||
|
], [2600, 6600])
|
||||||
|
P('Operațiuni și Istoric Mișcări apar doar dacă ai drept de modificare.')
|
||||||
|
|
||||||
|
H2('Operații cu istoric')
|
||||||
|
P('Operațiile se aleg din **Operațiuni**, pe mijlocul fix selectat. Lista lor e în Scenariul 6.')
|
||||||
|
STEPS(['**Majorare:** introduci suma majorării; programul calculează valoarea nouă de intrare.',
|
||||||
|
'**Schimbare DNS + reevaluare:** modifici împreună valoarea de inventar, amortizarea totală, DNS, '
|
||||||
|
'uzura totală și valoarea reziduală.',
|
||||||
|
'**Conservare:** pentru un mijloc fix aflat în conservare, opțiunea devine „scoatere din conservare”.',
|
||||||
|
'**Ieșire din gestiune:** pentru un mijloc fix ieșit, opțiunea devine „intrare în gestiune”.'])
|
||||||
|
P('O operație greșită se corectează sau se șterge din **Istoric Mișcări**.')
|
||||||
|
|
||||||
|
H2('Copiere imobilizare')
|
||||||
|
P('Butonul **Copiază** deschide formularul de introducere completat cu situația mijlocului fix din luna curentă:')
|
||||||
|
STEPS(['Denumirea, contul, codul, DNS, gestiunea, responsabilul și celelalte atribute.',
|
||||||
|
'Valoarea, amortizarea precedentă și uzura, fără rata lunii curente.',
|
||||||
|
'Numărul și data documentului de achiziție.'])
|
||||||
|
P('Toate câmpurile se pot modifica. Numărul de inventar se alocă la fel ca la o introducere nouă. Salvarea '
|
||||||
|
'creează un mijloc fix nou; sursa rămâne neschimbată. Butonul nu apare în lista fiscală.')
|
||||||
|
|
||||||
|
H2('Verificare cu contabilitatea')
|
||||||
|
P('Butonul **Verifică** compară, pe fiecare cont, valoarea imobilizărilor și amortizarea cu soldurile din '
|
||||||
|
'ROACONT. Dacă valorile sunt egale, primești un mesaj de confirmare. Altfel vezi conturile și diferențele.')
|
||||||
|
NOTE('Opțiunea „IMOB_OBI” din Definirea Companiei stabilește dacă verificarea include și contul 303.')
|
||||||
|
|
||||||
|
H2('Bunuri de capital')
|
||||||
|
P('Pentru imobilizările marcate „Bun de capital”, programul urmărește ajustarea TVA dedus la intrare, în '
|
||||||
|
'funcție de activitatea efectivă. Registrul se deschide din `Imobilizări corporale → Bunuri de capital`.')
|
||||||
|
|
||||||
|
H2('Rapoarte')
|
||||||
|
TABLE(['Raport', 'Unde', 'Ce conține'], [
|
||||||
|
['Listare situație lunară', '`Rapoarte`', 'Situația lunii, ordonată după data și numărul PIF'],
|
||||||
|
['Lista fișelor', '`Rapoarte`', 'Fișa fiecărui mijloc fix: standard sau cu lista operațiilor'],
|
||||||
|
['Lista de inventar', '`Rapoarte`', 'Ordonată după număr de inventar, denumire sau data PIF'],
|
||||||
|
['Evidența MF', '`Rapoarte`', 'Evidența mijloacelor fixe; se salvează și în format xls'],
|
||||||
|
['Registrul numerelor de inventar', '`Rapoarte`', 'Numerele de inventar folosite'],
|
||||||
|
['Situația reevaluărilor', '`Rapoarte`', 'Reevaluările și diferențele de valoare'],
|
||||||
|
['Diferențe amortizare contabilă / fiscală', '`Rapoarte`', 'Listare sau Excel'],
|
||||||
|
['Amortizări lunare, amortizare luna curentă', 'Lista → **Listare**', 'Pe interval sau pe luna curentă; grupat pe gestiune și cont sau pe cont'],
|
||||||
|
['Situația reevaluărilor / majorărilor / modificărilor', 'Lista → **Listare**', 'Pentru selecție sau pentru toate imobilizările'],
|
||||||
|
['Proces-verbal de casare', 'Lista → **Listare**', 'Câte un proces-verbal pentru fiecare document de casare'],
|
||||||
|
], [3300, 2000, 3900])
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- Necorporale
|
||||||
|
H1('Imobilizări necorporale')
|
||||||
|
P('Pagina funcționează la fel ca Imobilizări corporale: introducere, preluare, lista contabilă și fiscală, '
|
||||||
|
'operații, copiere, verificare și rapoarte. Diferențele:')
|
||||||
|
TABLE(['Element', 'Diferență'], [
|
||||||
|
['Bunuri de capital', 'Nu există în bara verticală'],
|
||||||
|
['Lista fișelor', 'O singură variantă'],
|
||||||
|
['Nota de închidere', '`Situații analitice → Rapoarte → Închidere imobilizări necorporale`'],
|
||||||
|
], [3000, 6200])
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- In curs
|
||||||
|
H1('Imobilizări în curs')
|
||||||
|
|
||||||
|
H2('Introducere și preluare')
|
||||||
|
P('Imobilizările în curs se introduc din `Imobilizări în curs → Introducere` sau se preiau din contabilitate. '
|
||||||
|
'Completezi denumirea, contul și contul analitic, numărul de inventar, documentul și valoarea de achiziție, '
|
||||||
|
'gestiunea, responsabilul, secția și lucrarea.')
|
||||||
|
|
||||||
|
H2('Lista imobilizărilor în curs')
|
||||||
|
P('Deschizi lista din `Imobilizări în curs → Vizualizare`. Culoarea rândului arată starea:')
|
||||||
|
TABLE(['Culoare', 'Înseamnă'], [
|
||||||
|
['Negru', 'Imobilizare netransformată'],
|
||||||
|
['Verde', 'Transformată parțial'],
|
||||||
|
['Albastru', 'Transformată integral (valoare rămasă 0)'],
|
||||||
|
], [2600, 6600])
|
||||||
|
TABLE(['Buton', 'Ce face'], [
|
||||||
|
['**Operațiuni**', 'Transformări în mijloace fixe și adăugări la mijloace fixe existente'],
|
||||||
|
['**Istoric Mișcări**', 'Adaugi, modifici sau ștergi operații. Așa ajustezi valoarea rămasă'],
|
||||||
|
['**Modifică / Șterge**', 'Modifici sau elimini imobilizarea în curs'],
|
||||||
|
['**Verifică**', 'Compară doar valoarea de inventar cu soldul din balanță'],
|
||||||
|
['**Listare / Excel**', 'Listare simplă sau grupată pe lucrări / export în Excel'],
|
||||||
|
], [2600, 6600])
|
||||||
|
|
||||||
|
H2('Transformare în mijloc fix')
|
||||||
|
P('Pașii sunt în Scenariul 4. Bifezi „Ales” la una sau mai multe imobilizări în curs. „Valoare reținută” '
|
||||||
|
'trebuie să fie cel mult egală cu valoarea rămasă. Ce nu transformi rămâne în curs.')
|
||||||
|
P('Mijlocul fix nou apare în lista imobilizărilor corporale sau necorporale, cu valoarea egală cu suma '
|
||||||
|
'valorilor reținute.')
|
||||||
|
|
||||||
|
H2('Transformare în N mijloace fixe')
|
||||||
|
P('Creezi N mijloace fixe identice dintr-o singură imobilizare în curs. De exemplu, 10 laptopuri cumpărate pe '
|
||||||
|
'aceeași factură.')
|
||||||
|
STEPS(['Bifezi „Ales” la **o singură** imobilizare în curs.',
|
||||||
|
'Apeși **Operațiuni** → „Transformare în N imobilizări corporale” (sau necorporale).',
|
||||||
|
'Introduci numărul de mijloace fixe, între 2 și 999.',
|
||||||
|
'Confirmi împărțirea: valoarea totală, numărul de bucăți și valoarea pe bucată.',
|
||||||
|
'Completezi formularul o singură dată. Titlul arată „Transformare în N mijloace fixe — valoare pe bucată”.',
|
||||||
|
'Validezi cu ✓ și alegi cum se dau numerele de inventar.'])
|
||||||
|
TABLE(['Regulă', 'Cum funcționează'], [
|
||||||
|
['Valoarea', 'Se împarte egal la N. Ultima bucată ia restul, ca suma să fie exactă'],
|
||||||
|
['Denumirea', 'Primește sufixul „01” … „N”, de exemplu „Laptop 01”, „Laptop 02”'],
|
||||||
|
['Nr. inventar, cu serie configurată', '**Da** = numere diferite, alocate din serie. **Nu** = același număr pentru toate bucățile'],
|
||||||
|
['Nr. inventar, fără serie', 'Numere consecutive, începând cu numărul din formular'],
|
||||||
|
['La final', 'Mesaj cu numărul de mijloace fixe create și numerele de inventar'],
|
||||||
|
], [3300, 5900])
|
||||||
|
BOX('**Dacă o bucată dă eroare, nu se salvează nimic.** Toate cele N mijloace fixe se creează într-o singură '
|
||||||
|
'tranzacție. La eroare primești mesajul „Eroare la MF k din N”, iar imobilizarea în curs rămâne neschimbată.')
|
||||||
|
|
||||||
|
H2('Adăugare la un mijloc fix existent')
|
||||||
|
P('„Adăugare la imobilizare corporală / necorporală” face o majorare pe un mijloc fix existent și scade '
|
||||||
|
'valoarea imobilizării în curs.')
|
||||||
|
BOX('**Anularea unei adăugări:** ștergi din Istoric Mișcări atât majorarea de pe mijlocul fix, cât și '
|
||||||
|
'operațiile de transformare de pe imobilizările în curs.', 'info')
|
||||||
|
|
||||||
|
H2('Rapoarte')
|
||||||
|
TABLE(['Raport', 'Ce conține'], [
|
||||||
|
['Lista imobilizărilor în curs', 'Listare simplă sau grupată pe lucrări'],
|
||||||
|
['Registrul numerelor de inventar', 'Numerele de inventar ale imobilizărilor în curs'],
|
||||||
|
['Situația reevaluărilor', 'Reevaluările imobilizărilor în curs'],
|
||||||
|
], [4000, 5200])
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- Inchiderea lunii
|
||||||
|
H1('Închiderea lunii și trecerea la luna următoare')
|
||||||
|
STEPS(['Verifici că toate intrările, operațiile și ieșirile lunii sunt introduse.',
|
||||||
|
'Apeși **Verifică** în lista imobilizărilor corporale, necorporale și în curs. Rezolvi diferențele.',
|
||||||
|
'Listezi nota de închidere: `Situații analitice → Rapoarte → Închidere imobilizări corporale` '
|
||||||
|
'(apoi necorporale). Programul întreabă dacă defalcă nota pe secție; dacă folosești câmpul '
|
||||||
|
'„Lucrare”, și pe lucrare.',
|
||||||
|
'Dacă nu lucrezi cu ROACONT, introduci nota manual în contabilitate.',
|
||||||
|
'Pentru luna următoare, dai **click dreapta pe imaginea de fundal**. În formularul „Alegeți firma / '
|
||||||
|
'anul / luna” alegi **Luna** nouă (și **Anul**, la trecerea în anul următor) și confirmi cu **Terminare**.'])
|
||||||
|
BOX('**Nota de închidere separă amortizarea deductibilă de cea nedeductibilă.** Pentru mijloacele fixe cu '
|
||||||
|
'„Amort. max. deductibil” (de exemplu autoturismele din 2133), partea peste plafon apare pe rând separat.', 'info')
|
||||||
|
BOX('**Luna blocată nu mai acceptă introduceri.** Dacă luna este închisă, programul afișează „Luna este '
|
||||||
|
'blocată!” și nu permite introduceri sau transformări.')
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- Rezumat, FAQ, istoric
|
||||||
|
H1('Rapoarte disponibile — Rezumat')
|
||||||
|
TABLE(['Categorie', 'Rapoarte disponibile'], [
|
||||||
|
['**Amortizare**', 'Amortizări lunare, amortizare luna curentă (pe gestiune și cont, pe cont), rulaj și total amortismente'],
|
||||||
|
['**Închidere**', 'Nota de închidere a amortizării, corporale și necorporale'],
|
||||||
|
['**Evidență**', 'Situație lunară, lista fișelor, lista de inventar, evidența MF'],
|
||||||
|
['**Numere de inventar**', 'Registrul numerelor de inventar, pe fiecare pagină'],
|
||||||
|
['**Operații**', 'Situația reevaluărilor, majorărilor și modificărilor; istoric operații'],
|
||||||
|
['**Contabil / fiscal**', 'Diferențe între amortizarea contabilă și cea fiscală'],
|
||||||
|
['**Ieșiri**', 'Proces-verbal de casare'],
|
||||||
|
['**În curs**', 'Lista imobilizărilor în curs, simplă sau grupată pe lucrări'],
|
||||||
|
], [2800, 6400])
|
||||||
|
|
||||||
|
H1('Întrebări frecvente (FAQ)')
|
||||||
|
H2('Î: Am introdus greșit o operație. Cum o anulez?')
|
||||||
|
P('**R:** Selectezi mijlocul fix în „Vizualizare amortizare contabilă” și apeși **Istoric Mișcări**. Modifici '
|
||||||
|
'sau ștergi operația. Dacă o ștergi, o ștergi și din „Vizualizare amortizare fiscală”.')
|
||||||
|
H2('Î: De ce nu văd butoanele Operațiuni și Istoric Mișcări?')
|
||||||
|
P('**R:** Apar doar dacă ai drept de modificare. În lista fiscală, Operațiuni nu apare deloc.')
|
||||||
|
H2('Î: Transformarea în N mijloace fixe a dat eroare. Ce s-a salvat?')
|
||||||
|
P('**R:** Nimic. Imobilizarea în curs rămâne neschimbată. Corectezi cauza și reiei transformarea.')
|
||||||
|
H2('Î: Cum schimb firma, anul sau luna contabilă?')
|
||||||
|
P('**R:** Dai click dreapta pe imaginea de fundal a aplicației. Se deschide formularul „Alegeți firma / anul / '
|
||||||
|
'luna”. Alegi **Firma**, **Anul** și **Luna** și confirmi cu **Terminare** (Ctrl+F).')
|
||||||
|
H2('Î: Pot crea mai multe copii după același mijloc fix?')
|
||||||
|
P('**R:** Da. După fiecare salvare programul întreabă dacă mai creezi o copie după același mijloc fix.')
|
||||||
|
|
||||||
|
H1('Istoric versiuni')
|
||||||
|
P('**v. 01.10.2026** — Manual refăcut în format nou; adăugate Copiere și Transformare în N MF; schimbarea '
|
||||||
|
'firmei/lunii prin click dreapta pe fundal; plafonul de 1.500 lei verificat pentru 2026; pragul fiscal de 5.000 lei pentru mijloace fixe '
|
||||||
|
'(OUG 8/2026).')
|
||||||
|
P('**v. 07.2021** — Versiunea anterioară, în format vechi.')
|
||||||
|
EMPTY()
|
||||||
|
para('footer', 'Manual generat pe baza documentației tehnice ROAIMOB')
|
||||||
|
|
||||||
|
doc.core_properties.title = 'Manual ROAIMOB'
|
||||||
|
doc.save(OUT)
|
||||||
|
print('OK', len(IMG_LOG), 'imagini')
|
||||||
Binary file not shown.
BIN
manualROAIMOB.docx
Normal file
BIN
manualROAIMOB.docx
Normal file
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user