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-07 21:53:32 +02:00
parent 303b6d3cee
commit e671d16469
3 changed files with 20 additions and 5 deletions

View File

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

View File

@ -1713,9 +1713,18 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
if (!dcons.ok())
r.put(RDOC_DATACONS, datacons);
}
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 (r.is_descrizione())
{
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())
((TDocumento *)this)->put(DOC_DOCEVASO, docevaso); // Tutte le righe evase -> doc evaso
@ -3237,6 +3246,7 @@ TRecord_array& TDocumento::body(int logicnum) const
{
TRectype& rec = r[i];
TRecfield dcons(rec, RDOC_DATACONS);
if (order && datacons == dcons)
dcons = "";
if (can_reset_ca)

View File

@ -1177,12 +1177,14 @@ bool TDocumento_mask::on_key(KEY key)
if (key == K_SHIFT + K_F12)
{
TRelation r(LF_DOC);
r.curr()=doc();
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);
stato.enable();
enable(DLG_SAVEREC);
enable(DLG_DELREC);
@ -4472,12 +4474,15 @@ bool tip_filter(const TRelation* r)
{
if (__codnum.blank())
return true;
const TCodice_numerazione & cod_num = cached_numerazione(__codnum);
const TString4 tipo = r->curr().get("CODTAB");
const int last = cod_num.ntipi_doc();
for (int i = 0; i < last; i++ )
{
const TString& curtipo = cod_num.tipo_doc(i);
if (curtipo == tipo && is_tipodoc_ok(curtipo))
return true;
}