diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index a9632bcd1..c4d17559d 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -181,9 +181,29 @@ TDate TGestione_bolle_msk::proponi_dataprco() const //PROPONI_AUTISTA: metodo che propone l'autista previsto per la data di prevista consegna TString8 TGestione_bolle_msk::proponi_autista() const { - const TDate dataprco = get(F_LVDATAPRCO); + const TDate datadoc = get(F_DATADOC); + const int indsped = get_int(F_CODINDSP); const long codcf = get_long(F_CODCF); - const long codcont = get_long(F_LVCODCONT); + const long codcont = lv_find_contract(codcf, indsped, datadoc); + + TDate dataprco; + + if (datadoc.ok()) + { + TDate adata = datadoc; + adata.addmonth(1); + + TString query = "USE LVRCONSPLAN KEY 3\n"; + query << "FROM CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=" << datadoc << "\n"; + query << "TO CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=" << adata << "\n"; + TISAM_recordset consegne(query); + + if (consegne.items() >= 2) + { + consegne.move_to(1); + dataprco = consegne.get(LVRCONSPLAN_DTCONS).as_date(); + } + } TString query = "USE LVRCONSPLAN KEY 3\n"; query << "FROM CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#DADATA\n"; @@ -395,6 +415,8 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) default: break; } TGestione_bolle_msk& dmsk = (TGestione_bolle_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 ) { @@ -431,10 +453,6 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) const TDate dataprco = dmsk.proponi_dataprco(); if (dataprco.ok() && dmsk.field(F_LVDATAPRCO).empty()) doc.put("DATAPRCO", dataprco); - - const TString8 autista = dmsk.proponi_autista(); - if (dmsk.field(F_CODAG).empty()) - doc.put(DOC_CODAG, autista); } if (dmsk._stcodcf == codcf && dmsk._stcodcont == codcont && nrighe > 0) diff --git a/lv/lv3300.cpp b/lv/lv3300.cpp index 47e083e57..98ea1b52f 100755 --- a/lv/lv3300.cpp +++ b/lv/lv3300.cpp @@ -177,9 +177,29 @@ TDate TGestione_buoni_msk::proponi_dataprco() const //PROPONI_AUTISTA: metodo che propone l'autista previsto per la data di prevista consegna TString8 TGestione_buoni_msk::proponi_autista() const { - const TDate dataprco = get(F_LVDATAPRCO); + const TDate datadoc = get(F_DATADOC); + const int indsped = get_int(F_CODINDSP); const long codcf = get_long(F_CODCF); - const long codcont = get_long(F_LVCODCONT); + const long codcont = lv_find_contract(codcf, indsped, datadoc); + + TDate dataprco; + + if (datadoc.ok()) + { + TDate adata = datadoc; + adata.addmonth(1); + + TString query = "USE LVRCONSPLAN KEY 3\n"; + query << "FROM CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=" << datadoc << "\n"; + query << "TO CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=" << adata << "\n"; + TISAM_recordset consegne(query); + + if (consegne.items() >= 2) + { + consegne.move_to(1); + dataprco = consegne.get(LVRCONSPLAN_DTCONS).as_date(); + } + } TString query = "USE LVRCONSPLAN KEY 3\n"; query << "FROM CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#DADATA\n"; @@ -201,6 +221,7 @@ TString8 TGestione_buoni_msk::proponi_autista() const codaut = cfven.get(CFV_CODAG); } return codaut; + } //////////////////////////// @@ -393,6 +414,8 @@ bool TGestione_buoni_msk::set_righe_buono_handler(TMask_field& f, KEY k) } 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) {