Patch level : 10.0
Files correlati : Ricompilazione Demo : [ ] Commento : corretta la funzione per generare i codriga git-svn-id: svn://10.65.10.50/trunk@17177 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
6b58b4b909
commit
fc80b842c8
@ -1,6 +1,7 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
|
#include <real.h>
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <recset.h>
|
#include <recset.h>
|
||||||
|
|
||||||
@ -88,7 +89,11 @@ bool TGenera_planning_app::destroy()
|
|||||||
return TApplication::destroy();
|
return TApplication::destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
//funzione estrae dalla tabella dei planning tutte le righe comprese tra le due date indicate
|
////////////////////////////////////////////////////////////////
|
||||||
|
////// METODI PER LA CANCELLAZIONE DEI PLANNING //////
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//ELIMINA_PLANNING: funzione che estrae dalla tabella dei planning tutte le righe comprese tra le due date indicate
|
||||||
bool TGenera_planning_app::elimina_planning(const TDate& dadata, const TDate& adata) const
|
bool TGenera_planning_app::elimina_planning(const TDate& dadata, const TDate& adata) const
|
||||||
{
|
{
|
||||||
//creo il recordset
|
//creo il recordset
|
||||||
@ -103,8 +108,8 @@ bool TGenera_planning_app::elimina_planning(const TDate& dadata, const TDate& ad
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//funzione estrae dalla tabella dei planning tutte le righe comprese tra le due date indicate...
|
//ELIMINA_PLANNING_ITINERARIO: funzione che estrae dalla tabella dei planning tutte le righe comprese tra...
|
||||||
//...relative ad un itinerario specifico
|
//...le due date indicate relative ad un itinerario specifico
|
||||||
bool TGenera_planning_app::elimina_planning_itinerario(const TDate& dadata, const TDate& adata, const long& coditi) const
|
bool TGenera_planning_app::elimina_planning_itinerario(const TDate& dadata, const TDate& adata, const long& coditi) const
|
||||||
{
|
{
|
||||||
//creo il recordset
|
//creo il recordset
|
||||||
@ -120,8 +125,8 @@ bool TGenera_planning_app::elimina_planning_itinerario(const TDate& dadata, cons
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//funzione estrae dalla tabella dei planning tutte le righe comprese tra le due date indicate...
|
//ELIMINA_PLANNING_CLIENTE: funzione che estrae dalla tabella dei planning tutte le righe comprese tra
|
||||||
//...relative ad un cliente specifico
|
//...le due date indicate relative ad un cliente specifico
|
||||||
bool TGenera_planning_app::elimina_planning_cliente(const TDate& dadata, const TDate& adata, const long& codcf) const
|
bool TGenera_planning_app::elimina_planning_cliente(const TDate& dadata, const TDate& adata, const long& codcf) const
|
||||||
{
|
{
|
||||||
//creo il recordset
|
//creo il recordset
|
||||||
@ -137,7 +142,7 @@ bool TGenera_planning_app::elimina_planning_cliente(const TDate& dadata, const T
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//funzione che elimina un recordset generato precedentemente
|
//KILL_PLANNING: funzione che elimina un recordset generato precedentemente
|
||||||
bool TGenera_planning_app::kill_planning (TISAM_recordset& selrighe) const
|
bool TGenera_planning_app::kill_planning (TISAM_recordset& selrighe) const
|
||||||
{
|
{
|
||||||
TSystemisamfile rplan(LF_LVRCONSPLAN); //instanzio una relazione sul file LF_LVRCONSPLAN
|
TSystemisamfile rplan(LF_LVRCONSPLAN); //instanzio una relazione sul file LF_LVRCONSPLAN
|
||||||
@ -165,7 +170,11 @@ bool TGenera_planning_app::kill_planning (TISAM_recordset& selrighe) const
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//funzione che restituisce il prossimo codriga per il planning della data interessata
|
////////////////////////////////////////////////////////////////
|
||||||
|
////// METODI PER LA GENERAZIONE DEI PLANNING //////
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//PROSSIMO_CODRIGA: funzione che restituisce il prossimo codriga per il planning della data interessata
|
||||||
int TGenera_planning_app::prossimo_codriga(const TDate& data)
|
int TGenera_planning_app::prossimo_codriga(const TDate& data)
|
||||||
{
|
{
|
||||||
TString8 strcodplan;
|
TString8 strcodplan;
|
||||||
@ -176,18 +185,18 @@ int TGenera_planning_app::prossimo_codriga(const TDate& data)
|
|||||||
//per ora memorizzo zero
|
//per ora memorizzo zero
|
||||||
ptriga = new real;
|
ptriga = new real;
|
||||||
_codriga.add(strcodplan,ptriga);
|
_codriga.add(strcodplan,ptriga);
|
||||||
|
|
||||||
//se esiste almeno una riga, memorizzo il codriga dell'ultima
|
//se esiste almeno una riga, memorizzo il codriga dell'ultima
|
||||||
TISAM_recordset rplan("USE LVRCONSPLAN KEY 1\nFROM CODPLAN=#CODPLAN\nTO CODPLAN=#CODPLAN");
|
TISAM_recordset rplan("USE LVRCONSPLAN KEY 1\nFROM CODPLAN=#CODPLAN\nTO CODPLAN=#CODPLAN");
|
||||||
rplan.set_var("#CODPLAN",TVariant(strcodplan));
|
rplan.set_var("#CODPLAN",TVariant(strcodplan));
|
||||||
if (rplan.move_last())
|
if (rplan.move_last())
|
||||||
*ptriga = rplan.get(LVRCONSPLAN_CODRIGA).as_real();
|
*ptriga = rplan.get(LVRCONSPLAN_CODRIGA).as_real();
|
||||||
}
|
}
|
||||||
*ptriga++; //incremento il codriga interessato
|
*ptriga += UNO; //incremento il codriga interessato
|
||||||
|
|
||||||
return ptriga->integer();
|
return ptriga->integer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//CERCA_ULTIMA_CONSEGNA: questa funzione ricerca la data dell'ultima consegna fatta ad un certo cliente
|
||||||
TDate TGenera_planning_app::cerca_ultima_consegna(long codcf, long coditi, const TDate& data) const
|
TDate TGenera_planning_app::cerca_ultima_consegna(long codcf, long coditi, const TDate& data) const
|
||||||
{
|
{
|
||||||
//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...
|
||||||
@ -201,6 +210,8 @@ TDate TGenera_planning_app::cerca_ultima_consegna(long codcf, long coditi, const
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//CONTA_CONSEGNE_MESE: questa funzione conta quante consegne sono state fatte ad un certo cliente
|
||||||
|
//dal primo del mese fino ad una certa data
|
||||||
int TGenera_planning_app::conta_consegne_mese(long codcf, long coditi, const TDate& adata) const
|
int TGenera_planning_app::conta_consegne_mese(long codcf, long coditi, const TDate& adata) const
|
||||||
{
|
{
|
||||||
TDate dadata = adata;
|
TDate dadata = adata;
|
||||||
@ -216,8 +227,8 @@ int TGenera_planning_app::conta_consegne_mese(long codcf, long coditi, const TDa
|
|||||||
return rplan.items();
|
return rplan.items();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Arrotonda per eccesso la data al giorno della settimana desiderato
|
//ARROTONDA_AL_GIORNO: questa funzione rrotonda per eccesso la data al giorno della settimana desiderato
|
||||||
// ggcons appartiene a [1..7]
|
//ggcons appartiene a [1..7] con 1 = lunedì -> 7 = domenica
|
||||||
void TGenera_planning_app::arrotonda_al_giorno(TDate& data, const int ggcons) const
|
void TGenera_planning_app::arrotonda_al_giorno(TDate& data, const int ggcons) const
|
||||||
{
|
{
|
||||||
int delta = ggcons - data.wday();
|
int delta = ggcons - data.wday();
|
||||||
@ -229,6 +240,7 @@ void TGenera_planning_app::arrotonda_al_giorno(TDate& data, const int ggcons) co
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//ELABORA_PASSAGGIO: questa funzione effettivamente genera il passaggio e lo slava nella tabella
|
||||||
void TGenera_planning_app::elabora_passaggio(const TDate& dadata, const TDate& adata, const TISAM_recordset& pplan)
|
void TGenera_planning_app::elabora_passaggio(const TDate& dadata, const TDate& adata, const TISAM_recordset& pplan)
|
||||||
{
|
{
|
||||||
//dati recuperati dalla tabella dei passaggi per contratto:
|
//dati recuperati dalla tabella dei passaggi per contratto:
|
||||||
@ -341,7 +353,9 @@ void TGenera_planning_app::elabora_passaggio(const TDate& dadata, const TDate& a
|
|||||||
const long codplan = d.date2ansi(); //setta il codplan
|
const long codplan = d.date2ansi(); //setta il codplan
|
||||||
rplan.zero();
|
rplan.zero();
|
||||||
rplan.put(LVRCONSPLAN_CODPLAN, codplan);
|
rplan.put(LVRCONSPLAN_CODPLAN, codplan);
|
||||||
rplan.put(LVRCONSPLAN_CODRIGA, prossimo_codriga(d));
|
|
||||||
|
int tmp = prossimo_codriga(d);
|
||||||
|
rplan.put(LVRCONSPLAN_CODRIGA, tmp);
|
||||||
|
|
||||||
rplan.put(LVRCONSPLAN_DTCONS,d); //setta la data di consegna
|
rplan.put(LVRCONSPLAN_DTCONS,d); //setta la data di consegna
|
||||||
rplan.put(LVRCONSPLAN_CODITI,coditi); //setta il codice itinerario
|
rplan.put(LVRCONSPLAN_CODITI,coditi); //setta il codice itinerario
|
||||||
@ -361,6 +375,8 @@ void TGenera_planning_app::elabora_passaggio(const TDate& dadata, const TDate& a
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TRANSFER: questo metodo elimina i planning già esistenti in modo da evitare conflitti
|
||||||
|
//e chiama la funzione ELABORA_PASSAGGIO
|
||||||
bool TGenera_planning_app::transfer()
|
bool TGenera_planning_app::transfer()
|
||||||
{
|
{
|
||||||
const TDate dadata = _msk->get(F_DADATA);
|
const TDate dadata = _msk->get(F_DADATA);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user