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
This commit is contained in:
luca83 2009-11-23 10:45:14 +00:00
parent c32e36de7d
commit 4fe9b2cfee

View File

@ -203,8 +203,11 @@ int TGenera_planning_app::conta_consegne_mese(long codcf, long codcont, const TD
{ {
TDate dadata = adata; TDate dadata = adata;
dadata.set_day(1); 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... //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"); 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("#CODITI",coditi);
rplan.set_var("#CODCF",codcf); 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("#DADATA",dadata);
rplan.set_var("#ADATA",adata); 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 //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... //se ho già raggiunto il numero massimo di consegne per mese...
//...la riga, anche se supera tutti i controlli, non va elaborata //...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; continue;
//scrivi la chiave //scrivi la chiave