bed09775ba
Files correlati : Ricompilazione Demo : [ ] Commento :riporto hardy dalla 11 (esportazione sospesivar) git-svn-id: svn://10.65.10.50/branches/R_10_00@21010 c028cbd2-c16b-5b4b-a496-9718f37d4682
169 lines
4.4 KiB
C++
Executable File
169 lines
4.4 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <progind.h>
|
|
#include <reputils.h>
|
|
|
|
#include "halib.h"
|
|
|
|
#include "ha1300a.h"
|
|
|
|
#define UPLOAD_FILE "upload.d"
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// TAutomask
|
|
///////////////////////////////////////////////////////////
|
|
class TUpload2Campo_mask : public TAutomask
|
|
{
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
public:
|
|
TUpload2Campo_mask();
|
|
};
|
|
|
|
bool TUpload2Campo_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
TUpload2Campo_mask::TUpload2Campo_mask() : TAutomask ("ha1300a")
|
|
{
|
|
TConfig config(CONFIG_DITTA, "ha");
|
|
const TString& path = config.get("InputPath");
|
|
set(F_PATH, path);
|
|
}
|
|
|
|
///////////////////////////////////////
|
|
// TSkeleton_application
|
|
///////////////////////////////////////
|
|
class TUpload2Campo : public TSkeleton_application
|
|
{
|
|
TFilename _intput_dir;
|
|
|
|
protected:
|
|
void elabora_SU(THardy_upload_recordset& recset, TLog_report& log);
|
|
void elabora_BR(THardy_upload_recordset& recset, TLog_report& log);
|
|
void elabora_VC(THardy_upload_recordset& recset, TLog_report& log);
|
|
|
|
void elabora(const TMask& mask);
|
|
|
|
public:
|
|
virtual void main_loop();
|
|
virtual bool create();
|
|
};
|
|
|
|
|
|
void TUpload2Campo::elabora_SU(THardy_upload_recordset& recset, TLog_report& log)
|
|
{
|
|
const TString& cod_term = recset.get("CodiceTerminale").as_string();
|
|
const TString& cod_age = recset.get(AGE_CODAGE).as_string();
|
|
const TString& descr_age = recset.get(AGE_RAGSOC).as_string();
|
|
TString msg;
|
|
msg << "Scartati dati agente " << cod_term << " " << descr_age;
|
|
log.log(0, msg);
|
|
}
|
|
|
|
void TUpload2Campo::elabora_BR(THardy_upload_recordset& recset, TLog_report& log)
|
|
{
|
|
const TString& cod_term = recset.get("CodiceTerminale").as_string();
|
|
const long ndoc = recset.get("NumeroDoc").as_int();
|
|
TString msg;
|
|
msg << "Scartato movimento magazzino. Terminale: " << cod_term << " N.Doc: " << ndoc;
|
|
log.log(0, msg);
|
|
}
|
|
|
|
|
|
void TUpload2Campo::elabora_VC(THardy_upload_recordset& recset, TLog_report& log)
|
|
{
|
|
const TString& cod_term = recset.get("CodiceTerminale").as_string();
|
|
const TString& codcf = recset.get(CLI_CODCF).as_string();
|
|
const TString& ragsoc = recset.get(CLI_RAGSOC).as_string();
|
|
TString msg;
|
|
msg << "Scartato nuovo cliente. Terminale: " << cod_term << " CodCli: " << codcf << " Ragsoc: " << ragsoc;
|
|
log.log(0, msg);
|
|
}
|
|
|
|
|
|
void TUpload2Campo::elabora(const TMask& mask)
|
|
{
|
|
TToken_string tipi_record("SU|TF|RF|SI|BR|VC");
|
|
|
|
//creazione del filename del file da importare
|
|
TFilename src_file = mask.get(F_PATH);
|
|
src_file.add(UPLOAD_FILE);
|
|
|
|
THardy_upload_recordset recset(src_file);
|
|
const long items = recset.items();
|
|
|
|
//creazione progind e log
|
|
TProgind pi(items, TR("Acquisizione dati in corso..."), true, true);
|
|
TLog_report log("Segnalazioni su acquisizione");
|
|
|
|
//giro su tutti i record del terribile recordset per l'acquisizione dei dati
|
|
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
|
{
|
|
if (!pi.addstatus(1))
|
|
break;
|
|
|
|
//acquisizione tipo record da riga corrente del file di input
|
|
const TString& tipo_record = recset.get(0u).as_string();
|
|
|
|
const int pos = tipi_record.get_pos(tipo_record);
|
|
|
|
//trattazione dei vari tracciati record
|
|
switch (pos)
|
|
{
|
|
case 0: //tipo record: SU (SetUp...ovvero agente)
|
|
elabora_SU(recset, log);
|
|
break;
|
|
case 1: //tipo record: TF (Testata Fattura)
|
|
//elabora_TF(recset, log);
|
|
break;
|
|
case 2: //tipo record: RF (Riga Fattura)
|
|
//elabora_RF(recset, log);
|
|
break;
|
|
case 3: //tipo record: SI (incasso documenti)
|
|
//elabora_SI(recset, log);
|
|
break;
|
|
case 4: //tipo record: BR (movimenti magazzino)
|
|
elabora_BR(recset, log);
|
|
break;
|
|
case 5: //tipo record: VC (Variazioni Cliente)
|
|
//elabora_VC(recset, log);
|
|
break;
|
|
default: //se il tipo record non esiste nella lista dei tipi record si incazza e lo scrive!
|
|
{
|
|
TString msg;
|
|
msg << "Tipo record non riconosciuto " << tipo_record;
|
|
log.log_error(msg);
|
|
}
|
|
break;
|
|
} //switch(pos)..
|
|
|
|
|
|
|
|
} //for (bool ok...
|
|
}
|
|
|
|
|
|
void TUpload2Campo::main_loop()
|
|
{
|
|
TUpload2Campo_mask mask;
|
|
_intput_dir = mask.get(F_PATH);
|
|
while (mask.run() == K_ENTER)
|
|
{
|
|
elabora(mask);
|
|
}
|
|
}
|
|
|
|
bool TUpload2Campo::create()
|
|
{
|
|
return TSkeleton_application::create();
|
|
}
|
|
|
|
int ha1300(int argc, char* argv[])
|
|
{
|
|
TUpload2Campo a;
|
|
a.run(argc, argv, "Importazione dati da file");
|
|
return 0;
|
|
} |