From 1800174481b397e3bf5a45e4092e913f798e325e Mon Sep 17 00:00:00 2001 From: luca83 Date: Thu, 11 Nov 2010 14:55:55 +0000 Subject: [PATCH] Patch level : 10.0 PATCH ??? Files correlati : lv3 Ricompilazione Demo : [ ] Commento : Sistemato il metodo di proposta dell'agente git-svn-id: svn://10.65.10.50/branches/R_10_00@21129 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv3100.cpp | 34 ++++++++++++++++++++++++++++++++++ lv/lv3300.cpp | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index 41ef6cc24..a9632bcd1 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -54,6 +54,7 @@ public: virtual void user_set_row_handler(TMask& rm, short field, int index); void reset_var_mask() {_stcodcf = 0; _stcodcont = 0;} TDate proponi_dataprco() const; + TString8 proponi_autista() const; TGestione_bolle_msk(const char* tipodoc); int _autoselect; @@ -177,6 +178,35 @@ TDate TGestione_bolle_msk::proponi_dataprco() const return dataprco; } +//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 long codcf = get_long(F_CODCF); + const long codcont = get_long(F_LVCODCONT); + + TString query = "USE LVRCONSPLAN KEY 3\n"; + query << "FROM CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#DADATA\n"; + query << "TO CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#ADATA\n"; + TISAM_recordset consegne(query); + consegne.set_var("#DADATA", dataprco); + consegne.set_var("#ADATA", dataprco); + consegne.move_first(); + + TString8 codaut = consegne.get(LVRCONSPLAN_CODAUT).as_string().right(5); codaut.trim(); + + if(codaut.empty()) + { + TToken_string key; + key.add('C'); + key.add(codcf); + + const TRectype& cfven = cache().get(LF_CFVEN, key); + codaut = cfven.get(CFV_CODAG); + } + return codaut; +} + //////////////////////////// // HANDLER DI DOCUMENTO // //////////////////////////// @@ -401,6 +431,10 @@ 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 adc2114f6..47e083e57 100755 --- a/lv/lv3300.cpp +++ b/lv/lv3300.cpp @@ -53,6 +53,7 @@ public: virtual void user_set_row_handler(TMask& rm, short field, int index); void reset_var_mask() {_stcodcf = 0; _stcodcont = 0;} TDate proponi_dataprco() const; + TString8 proponi_autista() const; TGestione_buoni_msk(const char* tipodoc); int _autoselect; @@ -173,6 +174,35 @@ TDate TGestione_buoni_msk::proponi_dataprco() const return dataprco; } +//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 long codcf = get_long(F_CODCF); + const long codcont = get_long(F_LVCODCONT); + + TString query = "USE LVRCONSPLAN KEY 3\n"; + query << "FROM CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#DADATA\n"; + query << "TO CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#ADATA\n"; + TISAM_recordset consegne(query); + consegne.set_var("#DADATA", dataprco); + consegne.set_var("#ADATA", dataprco); + consegne.move_first(); + + TString8 codaut = consegne.get(LVRCONSPLAN_CODAUT).as_string().right(5); codaut.trim(); + + if(codaut.empty()) + { + TToken_string key; + key.add('C'); + key.add(codcf); + + const TRectype& cfven = cache().get(LF_CFVEN, key); + codaut = cfven.get(CFV_CODAG); + } + return codaut; +} + //////////////////////////// // HANDLER DI DOCUMENTO // //////////////////////////// @@ -303,6 +333,10 @@ bool TGestione_buoni_msk::set_contratto_handler(TMask_field& f, KEY k) const TDate dataprco = dmsk.proponi_dataprco(); if (dataprco.ok() && dmsk.field(F_LVDATAPRCO).empty()) dmsk.set(F_LVDATAPRCO, dataprco); + + const TString8 autista = dmsk.proponi_autista(); + if (dmsk.field(F_CODAG).empty()) + dmsk.set(F_CODAG, autista); } return true;