Patch level : 12.00 1410

Files correlati     : ve0.exe
Commento            :
Fringe benefit 70% , cespiti non ammortizzabili
I supervisori possono modificare i documenti bloccati
This commit is contained in:
Alessandro Bonazzi 2026-04-08 12:17:01 +02:00
parent f4b3e9d8f3
commit 5486c774fa
3 changed files with 18 additions and 6 deletions

View File

@ -577,7 +577,7 @@ int TMotore_application::rewrite( const TMask& m ) // C 90
TDocumento_mask& mask = (TDocumento_mask&) m; TDocumento_mask& mask = (TDocumento_mask&) m;
int err = NOERR; int err = NOERR;
if (!d.bloccato()) if (supervisor() || !d.bloccato())
{ {
mask.mask2doc(); mask.mask2doc();
d = ((TDocumento_mask&)m).doc(); // Trasferisce il documento da maschera a record d = ((TDocumento_mask&)m).doc(); // Trasferisce il documento da maschera a record

View File

@ -1683,10 +1683,19 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
if (!dcons.ok()) if (!dcons.ok())
r.put(RDOC_DATACONS, datacons); r.put(RDOC_DATACONS, datacons);
} }
if (r.get(RDOC_CODCMS).blank()) r.put(RDOC_CODCMS, codcms); if (r.is_descrizione())
if (r.get(RDOC_FASCMS).blank()) r.put(RDOC_FASCMS, fascms); {
if (r.get(RDOC_CODCOSTO).blank()) r.put(RDOC_CODCOSTO, codcos); r.put(RDOC_CODCMS, codcms);
} r.put(RDOC_FASCMS, fascms);
r.put(RDOC_CODCOSTO, codcos);
}
else
{
if (r.get(RDOC_CODCMS).blank()) r.put(RDOC_CODCMS, codcms);
if (r.get(RDOC_FASCMS).blank()) r.put(RDOC_FASCMS, fascms);
if (r.get(RDOC_CODCOSTO).blank()) r.put(RDOC_CODCOSTO, codcos);
}
}
if (is_ordine()) if (is_ordine())
((TDocumento *)this)->put(DOC_DOCEVASO, docevaso); // Tutte le righe evase -> doc evaso ((TDocumento *)this)->put(DOC_DOCEVASO, docevaso); // Tutte le righe evase -> doc evaso
} // Almeno una riga aperta -> doc aperto } // Almeno una riga aperta -> doc aperto

View File

@ -972,12 +972,15 @@ bool TDocumento_mask::on_key(KEY key)
if (key == K_SHIFT + K_F12) if (key == K_SHIFT + K_F12)
{ {
TRelation r(LF_DOC); TRelation r(LF_DOC);
r.curr()=doc(); r.curr()=doc();
bool can_save = !doc().bloccato() && !doc().chiuso(); bool can_save = !doc().bloccato() && !doc().chiuso();
if (can_save && ::user_can_write(&r)) if (supervisor() || (can_save && ::user_can_write(&r)))
{ {
TMask_field& stato = field(F_STATO); TMask_field& stato = field(F_STATO);
stato.enable(); stato.enable();
enable(DLG_SAVEREC); enable(DLG_SAVEREC);
enable(DLG_DELREC); enable(DLG_DELREC);