Patch level : 10.0

Files correlati     : patch 236
Ricompilazione Demo : [ ]
Commento            :
0001164: Conteggio numero massimo consegne nel mese deve essere fatto nell'ambito dell' itinerario
Descrizione 	Come si puù notare dagli allegati la generazione dei giri si interrompe perchè raggiunto il numero massimo di consegne nel mese. ma nel conteggio non si è tenuto conto del cambio di itinerario.

0001162: Messaggio di cancellazione in inserimento passaggi per contratto
Descrizione 	Non deve uscire il messaggio di cancellazione (in allegato)
nè se nei dati di configurazione è impostata la generazione automatica dei giri nè se non è impostata. Tutto qello che è stato inserito a mano può essere cancellato solo a mano.


git-svn-id: svn://10.65.10.50/trunk@18243 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-02-11 09:43:18 +00:00
parent 7d0baf38a6
commit 9ea16fb3f1

View File

@ -70,7 +70,7 @@ protected:
bool kill_planning (TISAM_recordset& selrighe) const; bool kill_planning (TISAM_recordset& selrighe) const;
int prossimo_codriga(const TDate& data); int prossimo_codriga(const TDate& data);
TDate cerca_ultima_consegna(long codcf, long codcont, const TDate& data) const; TDate cerca_ultima_consegna(long codcf, long codcont, const TDate& data) const;
int conta_consegne_mese(long codcf, long codcont, const TDate& adata) const; int conta_consegne_mese(long codcf, long codcont, const TDate& adata, long coditi) const;
void arrotonda_al_giorno(TDate& data, const int ggcons) const; void arrotonda_al_giorno(TDate& data, const int ggcons) const;
void elabora_passaggio(const TDate& dadata, const TDate& adata, const TISAM_recordset& pplan); void elabora_passaggio(const TDate& dadata, const TDate& adata, const TISAM_recordset& pplan);
const TDate str2date(const TString& data, int year) const; const TDate str2date(const TString& data, int year) const;
@ -210,15 +210,14 @@ TDate TGenera_planning_app::cerca_ultima_consegna(long codcf, long codcont, cons
//CONTA_CONSEGNE_MESE: questa funzione conta quante consegne sono state fatte ad un certo cliente //CONTA_CONSEGNE_MESE: questa funzione conta quante consegne sono state fatte ad un certo cliente
//dal primo del mese fino ad una certa data //dal primo del mese fino ad una certa data
int TGenera_planning_app::conta_consegne_mese(long codcf, long codcont, const TDate& adata) const int TGenera_planning_app::conta_consegne_mese(long codcf, long codcont, const TDate& adata, long coditi) const
{ {
TDate dadata = adata; TDate dadata = adata;
dadata.set_day(1); dadata.set_day(1);
long ggcons = 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
TISAM_recordset rplan("USE LVRCONSPLAN KEY 3\nSELECT GGCONS=#GGCONS\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("#GGCONS",ggcons); rplan.set_var("#CODITI",coditi);
rplan.set_var("#CODCF",codcf); rplan.set_var("#CODCF",codcf);
rplan.set_var("#CODCONT",codcont); rplan.set_var("#CODCONT",codcont);
rplan.set_var("#DADATA",dadata); rplan.set_var("#DADATA",dadata);
@ -377,7 +376,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) >= maxcons) if (maxcons > 0 && conta_consegne_mese(codcf,codcont,d,coditi) >= maxcons)
continue; continue;
//scrivi la chiave //scrivi la chiave
@ -428,9 +427,17 @@ bool TGenera_planning_app::transfer()
const long coditi = _msk->get_long(F_CODITI); const long coditi = _msk->get_long(F_CODITI);
TString4 itinerario; TString4 itinerario;
itinerario.format("%03d",coditi); itinerario.format("%03d",coditi);
if (yesno_box(TR("Si desidera cancellare i giri modificati manualmente?")))
//questo if è stato commentato in data 11/02/2009 per evitare questo messaggio, in seguito alla segnalazione
//1162 in mantis; penso sia meglio commentarlo perchè era frutto di una segnalazione precedente, quindi
//lo tengo in via precauzionale
//ATTENZIONE: prima esisteva la possibilità di riscrivere tutto completamente; adesso i giri che
//hanno avuto una modifica manuale rimangono sempre (possono essere cancelati solo a mano
//dalla gestione manuale dei giri
/*if (yesno_box(TR("Si desidera cancellare i giri modificati manualmente?")))
elimina_planning_itinerario(dadata,adata,coditi,true); elimina_planning_itinerario(dadata,adata,coditi,true);
else else*/
elimina_planning_itinerario(dadata,adata,coditi,false); elimina_planning_itinerario(dadata,adata,coditi,false);
query << " SELECT CODITI=" << itinerario; query << " SELECT CODITI=" << itinerario;
} }