Patch level : 12.00 1270

Files correlati     : lv0.exe lv2.exe lv3.ex
Commento            :
Invio postino con ODBC
elminata error box nell'importazione pacchi batch
Buoni di prelievo veniva proposto un agrnte inesistente
This commit is contained in:
Alessandro Bonazzi 2023-06-27 08:51:01 +02:00
parent 98dd4185cb
commit c26a11f764
2 changed files with 29 additions and 18 deletions

View File

@ -240,7 +240,7 @@ protected:
void sposta_file(const TFilename& file); void sposta_file(const TFilename& file);
bool genera_documenti(const TFilename& file, TAssoc_array& documenti, TLog_report& logrep); bool genera_documenti(const TFilename& file, TAssoc_array& documenti, TLog_report& logrep);
void prepara_movimenti(const TFilename& file, TAssoc_array& movimenti, TLog_report& logrep); void prepara_movimenti(const TFilename& file, TAssoc_array& movimenti, TLog_report& logrep);
bool genera_movmag(TAssoc_array& movimenti); bool genera_movmag(TAssoc_array& movimenti, TLog_report& logrep);
public: public:
TConta_pulito_msk(); TConta_pulito_msk();
@ -329,7 +329,7 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
prepara_movimenti(file, movimenti, logrep); prepara_movimenti(file, movimenti, logrep);
if (movimenti.items() > 0) if (movimenti.items() > 0)
{ {
genera_movmag(movimenti); genera_movmag(movimenti, logrep);
if (_auto != "A") if (_auto != "A")
message_box(TR("Generazione dei movimenti di magazzino terminata")); message_box(TR("Generazione dei movimenti di magazzino terminata"));
} }
@ -807,7 +807,7 @@ void TConta_pulito_msk::prepara_movimenti(const TFilename& file, TAssoc_array& m
} }
//GENERA_MOVMAG: metodo che genera i movimenti di magazzino dai pacchi //GENERA_MOVMAG: metodo che genera i movimenti di magazzino dai pacchi
bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti) bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti, TLog_report& logrep)
{ {
const TCausale_magazzino causale(ini_get_string(CONFIG_DITTA, "lv", "CAUCARMAG")); const TCausale_magazzino causale(ini_get_string(CONFIG_DITTA, "lv", "CAUCARMAG"));
TString8 magazzino; TString8 magazzino;
@ -893,13 +893,22 @@ bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti)
{ {
TLocalisamfile& pacchi = selrighe.cursor()->file(); TLocalisamfile& pacchi = selrighe.cursor()->file();
// scorro tutti i pacchi trovati // scorro tutti i pacchi trovati
for (bool ok = selrighe.move_first(); ok; ok = selrighe.move_next()) for (bool ok = selrighe.move_first(); ok; ok = selrighe.move_next())
{ {
TRiga_pacco rp = pacchi.curr(); TRiga_pacco rp = pacchi.curr();
rp.set_movmag(nummov); rp.set_movmag(nummov);
const int err = rp.rewrite(pacchi); const int err = rp.rewrite(pacchi);
if (err != NOERR) if (err != NOERR)
return error_box(FR("Errore %d in aggiornamento numero di movimento sul file pacchi"), err); {
TString msg = FR("Errore %d in aggiornamento numero di movimento sul file pacchi");
if (_auto == "A")
{
logrep.log(2, msg);
return false;
}
else
return error_box(msg, err);
}
} }
} }
} }

View File

@ -414,30 +414,32 @@ bool TGestione_buoni_msk::set_righe_buono_handler(TMask_field& f, KEY k)
default: break; default: break;
} }
TGestione_buoni_msk& dmsk = (TGestione_buoni_msk&)f.mask(); TGestione_buoni_msk& dmsk = (TGestione_buoni_msk&)f.mask();
if(dmsk.mode() == MODE_INS)
dmsk.set(F_CODAG, dmsk.proponi_autista());
if (ok && k == K_TAB && ((dmsk.insert_mode() && f.to_check(k, true)) || f.focusdirty()) && dmsk.mode() != MODE_MOD) if (ok && k == K_TAB && ((dmsk.insert_mode() && f.to_check(k, true)) || (f.focusdirty()) && dmsk.edit_mode()))
{ {
f.set_focusdirty(false); const TString8 autista = dmsk.proponi_autista();
TDocumento& doc = dmsk.doc(); TDocumento& doc = dmsk.doc();
TSheet_field& sheet = dmsk.sfield(F_SHEET); TSheet_field& sheet = dmsk.sfield(F_SHEET);
int nrighe = sheet.items(); int nrighe = sheet.items();
const long codcf = dmsk.get_long(F_CODCF); const long codcf = dmsk.get_long(F_CODCF);
const int indsped = dmsk.get_int(F_CODINDSP); const int indsped = dmsk.get_int(F_CODINDSP);
TDate datadoc = dmsk.get_date(F_DATADOC); TDate datadoc = dmsk.get_date(F_DATADOC);
if (!datadoc.ok()) if (!datadoc.ok())
datadoc = TODAY; datadoc = TODAY;
const int anno = datadoc.year(); const int anno = datadoc.year();
f.set_focusdirty(false);
if (dmsk.insert_mode() && cache().get(LF_AGENTI, autista).full())
dmsk.set(F_CODAG, autista);
if (codcf <= 0) if (codcf <= 0)
return true; return true;
const long codcont = lv_find_contract(codcf,indsped,datadoc); const long codcont = lv_find_contract(codcf,indsped,datadoc);
if (codcont <= 0) if (codcont <= 0)
{ {
warning_box(TR("Non ci sono contratti in essere alla data indicata")); warning_box(TR("Non ci sono contratti in essere alla data indicata"));