From 4fe9b2cfee05ca0ca7026bf5c69b95781d88f08f Mon Sep 17 00:00:00 2001 From: luca83 Date: Mon, 23 Nov 2009 10:45:14 +0000 Subject: [PATCH] Patch level : 10.0 patch 525 Files correlati : lv2 Ricompilazione Demo : [ ] Commento : La generazione del planning adesso tiene conto anche del giorno nel conteggio del numero massimo di consegne per mese: se il numero max e' 5 genera all'interno dello stesso itinerario 5 lunedi', 5 martedi' e cosi' via git-svn-id: svn://10.65.10.50/trunk@19663 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv2100.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/lv/lv2100.cpp b/lv/lv2100.cpp index 9930c4ab9..26c0dcd7b 100755 --- a/lv/lv2100.cpp +++ b/lv/lv2100.cpp @@ -203,8 +203,11 @@ int TGenera_planning_app::conta_consegne_mese(long codcf, long codcont, const TD { TDate dadata = adata; dadata.set_day(1); + + const int giorno = adata.wday(); + //instanzia un recordset di LVRCONSPLAN prendendo tutte le consegne fatte per un cliente su un certo... - //...itinerario prima di una certa data + //...itinerario prima di una certa data (conta giorno per giorno) TISAM_recordset rplan("USE LVRCONSPLAN KEY 3\nSELECT CODITI=#CODITI\nFROM CODCF=#CODCF CODCONT=#CODCONT DTCONS=#DADATA\nTO CODCF=#CODCF CODCONT=#CODCONT DTCONS=#ADATA"); rplan.set_var("#CODITI",coditi); rplan.set_var("#CODCF",codcf); @@ -212,7 +215,17 @@ int TGenera_planning_app::conta_consegne_mese(long codcf, long codcont, const TD rplan.set_var("#DADATA",dadata); rplan.set_var("#ADATA",adata); - return rplan.items(); + int contatore = 0; + + for (bool ok = rplan.move_first(); ok; ok = rplan.move_next()) + { + TDate data = rplan.get(LVRCONSPLAN_DTCONS).as_date(); + + if (giorno == data.wday()) + contatore++; + } + + return contatore; } //ARROTONDA_AL_GIORNO: questo metodo arrotonda per eccesso la data al giorno della settimana desiderato @@ -367,7 +380,7 @@ void TGenera_planning_app::elabora_passaggio(const TDate& dadata, const TDate& a //se ho già raggiunto il numero massimo di consegne per mese... //...la riga, anche se supera tutti i controlli, non va elaborata - if (maxcons > 0 && conta_consegne_mese(codcf,codcont,d,coditi) >= maxcons) + if (maxcons > 0 && conta_consegne_mese(codcf, codcont, d, coditi) >= maxcons) continue; //scrivi la chiave