Patch level : 10.0 186
Files correlati : lv2 Ricompilazione Demo : [ ] Commento : 0001038: Gestione passo giri in automatico per frequenza consegne settimanale Description Gestione passo giri in automatico per frequenza consegne settimanale (spiegazioni dettagliate nel documento allegato) 0001006: Gestione più itinerari nello stesso giorno e itinerario stagionale Description Nel programma dove vengono impostati i giri per il contratto bisognerebbe dare la possibilità di gestire più itinerari per lo stesso giorno a di poter assegnare ad ognuno di essi una data inizio e fine validità. in allegato un esempio Additional Information Dove ... Lo stesso itinerario nello stesso giorno può esistere solo se c'è una data inizio e fine validità validità Mentre può esserci un itinerario diverso Più gestione festività git-svn-id: svn://10.65.10.50/trunk@17827 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7c1f142b26
commit
f2b5bc6bc1
@ -1,5 +1,6 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
|
#include <date.h>
|
||||||
#include <isam.h>
|
#include <isam.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <real.h>
|
#include <real.h>
|
||||||
@ -210,9 +211,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);
|
||||||
|
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\nFROM CODCF=#CODCF CODCONT=#CODCONT DTCONS=#DADATA\nTO CODCF=#CODCF CODCONT=#CODCONT DTCONS=#ADATA");
|
TISAM_recordset rplan("USE LVRCONSPLAN KEY 3\nSELECT GGCONS=#GGCONS\nFROM CODCF=#CODCF CODCONT=#CODCONT DTCONS=#DADATA\nTO CODCF=#CODCF CODCONT=#CODCONT DTCONS=#ADATA");
|
||||||
|
rplan.set_var("#GGCONS",ggcons);
|
||||||
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);
|
||||||
@ -246,6 +249,8 @@ void TGenera_planning_app::elabora_passaggio(const TDate& dadata, const TDate& a
|
|||||||
const int ordfer = pplan.get(LVPASPLAN_ORDFERM).as_int(); //ordine di fermata
|
const int ordfer = pplan.get(LVPASPLAN_ORDFERM).as_int(); //ordine di fermata
|
||||||
const TString4 freq = pplan.get(LVPASPLAN_FREQ).as_string(); //codice della tabella di frequenze di consegna
|
const TString4 freq = pplan.get(LVPASPLAN_FREQ).as_string(); //codice della tabella di frequenze di consegna
|
||||||
char modpass = pplan.get(LVPASPLAN_MODPASS).as_string()[0]; //modalità di passaggio
|
char modpass = pplan.get(LVPASPLAN_MODPASS).as_string()[0]; //modalità di passaggio
|
||||||
|
const TDate dastag = pplan.get_date(LVPASPLAN_DTSTAGIN); //data di inizio del periodo di stagionalità
|
||||||
|
const TDate astag = pplan.get_date(LVPASPLAN_DTSTAGSC); //data di fine del periodo di stagionalità
|
||||||
|
|
||||||
//cache sulle testate dei contratti, selezionati per CODCF e CODCONT
|
//cache sulle testate dei contratti, selezionati per CODCF e CODCONT
|
||||||
TToken_string keycont;
|
TToken_string keycont;
|
||||||
@ -254,9 +259,7 @@ void TGenera_planning_app::elabora_passaggio(const TDate& dadata, const TDate& a
|
|||||||
const TRectype& contratto = cache().get(LF_LVCONDV,keycont);
|
const TRectype& contratto = cache().get(LF_LVCONDV,keycont);
|
||||||
//dati recuperati dalle testate dei contratti:
|
//dati recuperati dalle testate dei contratti:
|
||||||
const TDate dadatacont = contratto.get_date(LVCONDV_DATAIN); //data di inizio validità del contratto
|
const TDate dadatacont = contratto.get_date(LVCONDV_DATAIN); //data di inizio validità del contratto
|
||||||
const TDate adatacont = contratto.get_date(LVCONDV_DATASC); //data di fine validità del contratto
|
const TDate adatacont = contratto.get_date(LVCONDV_DATASC); //data di fine validità del contratto
|
||||||
const TDate dastag = contratto.get_date(LVCONDV_DTSTAGIN); //data di inizio del periodo di stagionalità
|
|
||||||
const TDate astag = contratto.get_date(LVCONDV_DTSTAGSC); //data di fine del periodo di stagionalità
|
|
||||||
|
|
||||||
// Controllo se il contratto e' valido nel periodo interessato
|
// Controllo se il contratto e' valido nel periodo interessato
|
||||||
if (dadatacont > adata || (adatacont.ok() && adatacont < dadata))
|
if (dadatacont > adata || (adatacont.ok() && adatacont < dadata))
|
||||||
@ -309,6 +312,10 @@ void TGenera_planning_app::elabora_passaggio(const TDate& dadata, const TDate& a
|
|||||||
continue; // Questa data non e' ancora in contratto: provo la prossima
|
continue; // Questa data non e' ancora in contratto: provo la prossima
|
||||||
if (adatacont.ok() && d > adatacont)
|
if (adatacont.ok() && d > adatacont)
|
||||||
break; // Questa data e' oltre il contratto: inutile proseguire
|
break; // Questa data e' oltre il contratto: inutile proseguire
|
||||||
|
|
||||||
|
//controlla se è una festività
|
||||||
|
if(lv_is_holiday(d))
|
||||||
|
continue;
|
||||||
|
|
||||||
//...e/o in un periodo di stagionalità (se necessario)...
|
//...e/o in un periodo di stagionalità (se necessario)...
|
||||||
////la riga va elaborata se il flag di stagionalità è TRUE
|
////la riga va elaborata se il flag di stagionalità è TRUE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user