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; 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

@ -1713,9 +1713,18 @@ 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
@ -3237,6 +3246,7 @@ TRecord_array& TDocumento::body(int logicnum) const
{ {
TRectype& rec = r[i]; TRectype& rec = r[i];
TRecfield dcons(rec, RDOC_DATACONS); TRecfield dcons(rec, RDOC_DATACONS);
if (order && datacons == dcons) if (order && datacons == dcons)
dcons = ""; dcons = "";
if (can_reset_ca) if (can_reset_ca)

View File

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