Prima versione trasferimento SISPAC

git-svn-id: svn://10.65.10.50/branches/R_10_00@22717 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2012-08-09 14:30:30 +00:00
parent 325306a4c7
commit 5bfd248c7b
2 changed files with 186 additions and 224 deletions

View File

@ -31,7 +31,6 @@ protected:
public:
TInvioP_file(const TString& file_name);
virtual ~TInvioP_file() { }
};
TInvioP_file::TInvioP_file(const TString& file_name)

View File

@ -1,8 +1,7 @@
#include <applicat.h>
#include <automask.h>
#include <config.h>
#include <lffiles.h>
#include <prefix.h>
#include <modaut.h>
#include <progind.h>
#include <recarray.h>
#include <utility.h>
@ -23,6 +22,7 @@
#include <rmov.h>
#include <rmoviva.h>
#include <multirel.h>
#include "../ca/rip.h"
#define SLF_MOV "23"
#define ALIAS_REG 100
@ -232,23 +232,38 @@ const char * TRiclassifica_cache::sdecode(const char* tab, const TString& cod)
return ric ? (const char *) *ric : "";
}
class TMovim_set : public TAS400_recordset
///////////////////////////////////////////////////////////
// TSISPAC_set
///////////////////////////////////////////////////////////
class TSISPAC_set : public TAS400_recordset
{
protected:
void add_field(const char* name = "Filler", int from = -1, int len = 0, char tipo = 'a',
const char* def = NULL);
void add_field(const char* name = "Filler", int from = -1, int len = 0, TFieldtypes t = _alfafld, const char* def = NULL);
public:
TMovim_set();
TSISPAC_set(const char* header) : TAS400_recordset(header) {}
};
void TMovim_set::add_field(const char* name, int from, int len,
char tipo, const char* def)
void TSISPAC_set::add_field(const char* name, int from, int len, TFieldtypes t, const char* def)
{
const bool required = false;
TString80 fname(name);
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
switch (t)
{
case _datefld:
len = 8;
case _intfld:
case _intzerofld:
case _longfld:
t = _longzerofld;
break;
default:
t = _alfafld;
break;
}
const int pos = from - 1;
if (def && *def)
{
@ -260,7 +275,17 @@ void TMovim_set::add_field(const char* name, int from, int len,
create_field(fname, pos, len, t, required);
}
TMovim_set::TMovim_set() : TAS400_recordset("AS400(217)")
///////////////////////////////////////////////////////////
// TMovim_set
///////////////////////////////////////////////////////////
class TMovim_set : public TSISPAC_set
{
public:
TMovim_set();
};
TMovim_set::TMovim_set() : TSISPAC_set("AS400(217)")
{
create_field("COFI", -1, 16, _alfafld);
create_field("PAIV", -1, 11, _alfafld);
@ -293,35 +318,13 @@ TMovim_set::TMovim_set() : TAS400_recordset("AS400(217)")
create_field("FINEREC", -1, 2, _alfafld, true, "\r\n");
}
class TIvamov_set : public TAS400_recordset
class TIvamov_set : public TSISPAC_set
{
protected:
void add_field(const char* name = "Filler", int from = -1, int len = 0, char tipo = 'a',
const char* def = NULL);
public:
TIvamov_set();
};
void TIvamov_set::add_field(const char* name, int from, int len,
char tipo, const char* def)
{
const bool required = false;
TString80 fname(name);
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
const int pos = from - 1;
if (def && *def)
{
CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
TVariant var(def); var.convert_to(t);
create_field(fname, pos, len, t, required, var);
}
else
create_field(fname, pos, len, t, required);
}
TIvamov_set::TIvamov_set() : TAS400_recordset("AS400(171)")
TIvamov_set::TIvamov_set() : TSISPAC_set("AS400(171)")
{
create_field("COFI", -1, 16, _alfafld);
create_field("PAIV", -1, 11, _alfafld);
@ -348,35 +351,13 @@ TIvamov_set::TIvamov_set() : TAS400_recordset("AS400(171)")
create_field("FINEREC", -1, 2, _alfafld,true,"\r\n");
}
class TIntramov_set : public TAS400_recordset
class TIntramov_set : public TSISPAC_set
{
protected:
void add_field(const char* name = "Filler", int from = -1, int len = 0, char tipo = 'a',
const char* def = NULL);
public:
TIntramov_set();
};
void TIntramov_set::add_field(const char* name, int from, int len,
char tipo, const char* def)
{
const bool required = false;
TString80 fname(name);
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
const int pos = from - 1;
if (def && *def)
{
CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
TVariant var(def); var.convert_to(t);
create_field(fname, pos, len, t, required, var);
}
else
create_field(fname, pos, len, t, required);
}
TIntramov_set::TIntramov_set() : TAS400_recordset("AS400(206)")
TIntramov_set::TIntramov_set() : TSISPAC_set("AS400(206)")
{
create_field("COFI", -1, 16, _alfafld);
create_field("PAIV", -1, 11, _alfafld);
@ -411,35 +392,13 @@ TIntramov_set::TIntramov_set() : TAS400_recordset("AS400(206)")
}
/* non li abbiamo i ratei
class TRateimov_set : public TAS400_recordset
class TRateimov_set : public TSISPAC_set
{
protected:
void add_field(const char* name = "Filler", int len = 0, char tipo = 'a',
int from = -1, const char* def = NULL);
public:
TRateimov_set();
};
void TRateimov_set::add_field(const char* name, int len,
char tipo, int from, const char* def)
{
const bool required = false;
TString80 fname(name);
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
const int pos = from - 1;
if (def && *def)
{
CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
TVariant var(def); var.convert_to(t);
create_field(fname, pos, len, t, required, var);
}
else
create_field(fname, pos, len, t, required);
}
TRateimov_set::TRateimov_set() : TAS400_recordset("AS400(222)")
TRateimov_set::TRateimov_set() : TSISPAC_set("AS400(222)")
{
create_field("COFI", -1, 16, _alfafld);
create_field("PAIV", -1, 11, _alfafld);
@ -466,35 +425,13 @@ TRateimov_set::TRateimov_set() : TAS400_recordset("AS400(222)")
}
*/
class TForsisp_set : public TAS400_recordset
class TForsisp_set : public TSISPAC_set
{
protected:
void add_field(const char* name = "Filler", int from = -1, int len = 0, char tipo = 'a',
const char* def = NULL);
public:
TForsisp_set();
};
void TForsisp_set::add_field(const char* name, int from, int len,
char tipo, const char* def)
{
const bool required = false;
TString80 fname(name);
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
const int pos = from - 1;
if (def && *def)
{
CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
TVariant var(def); var.convert_to(t);
create_field(fname, pos, len, t, required, var);
}
else
create_field(fname, pos, len, t, required);
}
TForsisp_set::TForsisp_set() : TAS400_recordset("AS400(304)")
TForsisp_set::TForsisp_set() : TSISPAC_set("AS400(304)")
{
create_field("CODANAG", -1, 6, _alfafld);
create_field("COFI", -1, 16, _alfafld);
@ -518,35 +455,13 @@ TForsisp_set::TForsisp_set() : TAS400_recordset("AS400(304)")
create_field("FINEREC", -1, 2, _alfafld,true,"\r\n");
}
class TClisisp_set : public TAS400_recordset
class TClisisp_set : public TSISPAC_set
{
protected:
void add_field(const char* name = "Filler", int from = -1, int len = 0, char tipo = 'a',
const char* def = NULL);
public:
TClisisp_set();
};
void TClisisp_set::add_field(const char* name, int from, int len,
char tipo, const char* def)
{
const bool required = false;
TString80 fname(name);
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
const int pos = from - 1;
if (def && *def)
{
CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
TVariant var(def); var.convert_to(t);
create_field(fname, pos, len, t, required, var);
}
else
create_field(fname, pos, len, t, required);
}
TClisisp_set::TClisisp_set() : TAS400_recordset("AS400(304)")
TClisisp_set::TClisisp_set() : TSISPAC_set("AS400(304)")
{
create_field("CODANAG", -1, 6, _alfafld);
create_field("COFI", -1, 16, _alfafld);
@ -571,36 +486,14 @@ TClisisp_set::TClisisp_set() : TAS400_recordset("AS400(304)")
}
/*
class TMovplus_set : public TAS400_recordset
class TMovplus_set : public TSISPAC_set
{
protected:
void add_field(const char* name = "Filler", int len = 0, char tipo = 'a',
int from = -1, const char* def = NULL);
public:
TMovplus_set();
};
void TMovplus_set::add_field(const char* name, int len,
char tipo, int from, const char* def)
{
const bool required = false;
TString80 fname(name);
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
const int pos = from - 1;
if (def && *def)
{
CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
TVariant var(def); var.convert_to(t);
create_field(fname, pos, len, t, required, var);
}
else
create_field(fname, pos, len, t, required);
}
TMovplus_set::TMovplus_set()
: TAS400_recordset("AS400(200)")
: TSISPAC_set("AS400(200)")
{
create_field("COFI", -1, 16, _alfafld);
create_field("PAIV", -1, 11, _alfafld);
@ -618,35 +511,13 @@ TMovplus_set::TMovplus_set()
}
*/
class TMovpart_set : public TAS400_recordset
class TMovpart_set : public TSISPAC_set
{
protected:
void add_field(const char* name = "Filler", int len = 0, char tipo = 'a',
int from = -1, const char* def = NULL);
public:
TMovpart_set();
};
void TMovpart_set::add_field(const char* name, int len,
char tipo, int from, const char* def)
{
const bool required = false;
TString80 fname(name);
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
const int pos = from - 1;
if (def && *def)
{
CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
TVariant var(def); var.convert_to(t);
create_field(fname, pos, len, t, required, var);
}
else
create_field(fname, pos, len, t, required);
}
TMovpart_set::TMovpart_set() : TAS400_recordset("AS400(322)")
TMovpart_set::TMovpart_set() : TSISPAC_set("AS400(322)")
{
create_field("COFI", -1, 16, _alfafld);
create_field("PAIV", -1, 11, _alfafld);
@ -654,7 +525,7 @@ TMovpart_set::TMovpart_set() : TAS400_recordset("AS400(322)")
create_field("ARGOMENTO", -1, 1, _longzerofld);
create_field("NUMPART", -1, 7, _longzerofld);
create_field("NUMINT", -1, 3, _longzerofld);
create_field("DATAOP", -1, 8, _longzerofld);
create_field("DATAOP", -1, 8, _datefld);
create_field("CODSCONT", -1, 6, _alfafld);
create_field("CODCLIFO", -1, 6, _alfafld);
create_field("TIPOREG", -1, 2, _longzerofld);
@ -667,7 +538,7 @@ TMovpart_set::TMovpart_set() : TAS400_recordset("AS400(322)")
create_field("TIPOMOV", -1, 1, _alfafld);
create_field("CODCAUS", -1, 5, _longzerofld);
create_field("CODPAG", -1, 6, _alfafld);
create_field("DATASCAD", -1, 8, _longzerofld);
create_field("DATASCAD", -1, 8, _datefld);
create_field("IMPTMOV", -1, 12, _longzerofld);
create_field("SGNIMPT", -1, 1, _alfafld);
create_field("CODAG", -1, 3, _alfafld);
@ -692,6 +563,54 @@ TMovpart_set::TMovpart_set() : TAS400_recordset("AS400(322)")
create_field("FINEREC", -1, 2, _alfafld,true,"\r\n");
}
class TMovanal_set : public TSISPAC_set
{
public:
TMovanal_set();
};
TMovanal_set::TMovanal_set() : TSISPAC_set("AS400(351)")
{
create_field("COFI", -1, 16, _alfafld);
create_field("PAIV", -1, 11, _alfafld);
create_field("RAGSOC", -1, 50, _alfafld);
create_field("ESCOGE", -1, 4, _intzerofld);
create_field("NUMPART", -1, 7, _longzerofld);
create_field("NUMINT", -1, 3, _intzerofld);
create_field("PROGINT", -1, 3, _intzerofld);
create_field("DATAOP", -1, 8, _datefld);
create_field("CODCONTO", -1, 6, _alfafld);
create_field("SGNCONTIMP", -1, 1, _alfafld);
create_field("IMPORTO", -1, 12, _longzerofld);
create_field("SGNIMPT", -1, 1, _alfafld);
create_field("PERC", -1, 5, _intzerofld);
create_field("ANNO", -1, 4, _intzerofld);
create_field("CODCAUS", -1, 5, _longzerofld);
create_field("NUMDOC", -1, 7, _alfafld);
create_field("DATADOC", -1, 8, _datefld);
create_field("NUMPROT", -1, 7, _longzerofld);
create_field("CDCCONT", -1, 6, _alfafld);
create_field("COFIANAL", -1, 16, _alfafld);
create_field("PAIVANAL", -1, 11, _alfafld);
create_field("RAGSOCANAL", -1, 50, _alfafld);
create_field("NOTEANAL", -1, 50, _alfafld);
create_field("DATAOPANAL", -1, 8, _datefld);
create_field("DATAFIANAL", -1, 8, _datefld);
create_field("PDC", -1, 9, _alfafld);
create_field("CDC1", -1, 9, _alfafld);
create_field("CDC2", -1, 9, _alfafld);
//create_field("LIBERO", -1, 15, _alfafld);
create_field("FINEREC", 349, 2, _alfafld, true,"\r\n");
}
///////////////////////////////////////////////////////////
// TInvioSispac_mask
///////////////////////////////////////////////////////////
class TInvioSispac_mask : public TAutomask
{
protected:
@ -712,17 +631,17 @@ bool TInvioSispac_mask::on_field_event(TOperable_field& o, TField_event e, long
switch (o.dlg())
{
case F_CODDITTA:
if (e==fe_init && o.empty())
if (e == fe_init && o.empty())
{
set(F_CODDITTA, main_app().get_firm());
((TEdit_field&) o).check();
disable(F_CODDITTA);
o.set(main_app().get_firm());
o.check();
o.disable();
}
break;
default:
break;
}
return TRUE;
return true;
}
class TInvioSispac : public TSkeleton_application
@ -1287,6 +1206,8 @@ void TInvioSispac::sispac_reverse_giro(long numreg, TMovim_set & recset, long fi
void TInvioSispac::sispac_movim()
{
TMovim_set recset;
TMovanal_set analset;
TString query;
TString key;
TEsercizi_contabili esc;
@ -1325,7 +1246,7 @@ void TInvioSispac::sispac_movim()
for (bool ok = input.move_first(); ok ; ok = input.move_next())
{
long nmov =input.get(RMV_NUMREG).as_int();
const long nmov = input.get(RMV_NUMREG).as_int();
TString4 sezione(input.get(RMV_SEZIONE).as_string());
if (nmov != lastmov)
@ -1423,26 +1344,26 @@ void TInvioSispac::sispac_movim()
TRegistro r(reg, input.get(SLF_MOV "." MOV_ANNOIVA).as_int());
switch (r.iva())
{
case iva_vendite :
if (r.corrispettivi())
{
var = "S";
treg = "04";
}
else
{
var = "V";
treg = "03";
}
break;
case iva_acquisti :
var = "A";
treg = "02";
break;
default:
var = "";
treg = "01";
break;
case iva_vendite :
if (r.corrispettivi())
{
var = "S";
treg = "04";
}
else
{
var = "V";
treg = "03";
}
break;
case iva_acquisti :
var = "A";
treg = "02";
break;
default:
var = "";
treg = "01";
break;
}
}
const TString4 tipomov = var.as_string();
@ -1456,15 +1377,16 @@ void TInvioSispac::sispac_movim()
var = format("%03ld", ++nrow);
recset.set("NUMINT", var);
recset.set("DATAOP", datareg.string(brief, '\0', full, full, amg_date));
TString16 codice;
const char tipocf = input.get(RMV_TIPOC).as_string()[0];
long gruppo = input.get(RMV_GRUPPO).as_int();
const long conto = input.get(RMV_CONTO).as_int();
const long sottoconto = input.get(RMV_SOTTOCONTO).as_int();
if (gruppo == 10)
gruppo = 0;
if (input.get(RMV_TIPOC).as_string().full())
TString16 codice;
if (tipocf >= 'C')
codice.format("%01ld%02ld000%06ld", gruppo, conto, sottoconto);
else
codice.format("%01ld%02ld%03ld000000", gruppo, conto, sottoconto);
@ -1481,12 +1403,11 @@ void TInvioSispac::sispac_movim()
recset.set("TIPOART", *v);
TString8 codcaus = scod2ricl("SCCAU", ccaus);
const TString4 tipocf = input.get(RMV_TIPOC).as_string();
const TString8 codcauscf = scod2caucf(ccaus);
const TString8 codcauscon = scod2caucon(ccaus);
const TString4 sezcon = scod2sezcon(ccaus);
if (tipocf == "C" || tipocf == "F")
if (tipocf >= 'C')
{
if (codcauscf.full())
codcaus = codcauscf;
@ -1544,15 +1465,58 @@ void TInvioSispac::sispac_movim()
recset.set("TIPOANAG", var);
recset.set("FINEREC", "\r\n");
p.addstatus(1L);;
if (p.iscancelled())
if (tipocf <= ' ' && has_module(CMAUT, CHK_DONGLE) /*&& !has_module(CAAUT, CHK_DONGLE)*/)
{
TLocalisamfile rip(LF_RIP); rip.setkey(3);
rip.put(RIP_TIPO, 'B');
rip.put(RIP_GRUPPO, gruppo);
rip.put(RIP_CONTO, conto);
rip.put(RIP_SOTTOCONTO, sottoconto);
// if (rip.read(_isgteq) == NOERR && rip.get_int(RIP_GRUPPO)==gruppo && rip.get_int(RIP_CONTO)==conto && rip.get_long(RIP_SOTTOCONTO)==sottoconto)
{
analset.new_rec();
analset.set("COFI", recset.get("COFI"));
analset.set("PAIV", recset.get("RAGSOC"));
analset.set("ESCOGE", recset.get("ESCOGE"));
analset.set("NUMPART", recset.get("NUMPART"));
analset.set("NUMINT", recset.get("NUMINT"));
analset.set("PROGINT", "001");
analset.set("DATAOP", recset.get("DATAOP"));
analset.set("CODCONTO", recset.get("CODCONTO"));
analset.set("SGNCONTIMP", recset.get("SGNCONTIMP"));
analset.set("IMPORTO", recset.get("IMPORTO"));
analset.set("SGNIMPT", recset.get("SGNIMPT"));
analset.set("PERC", "10000");
analset.set("ANNO", input.get(MOV_ANNOIVA));
analset.set("CODCAUS", recset.get("CODCAUS"));
analset.set("NUMDOC", recset.get("NUMDOC"));
analset.set("DATADOC", recset.get("DATADOC"));
analset.set("NUMPROT", recset.get("NUMPROT"));
analset.set("DATAOPANAL", recset.get("DATAOP"));
analset.set("CDC", recset.get("CODCONTO"));
analset.set("CDC1", rip.get(RIP_CODCMS));
analset.set("CDC2", rip.get(RIP_CODFASE));
analset.set("FINEREC", "\r\n");
}
}
if (!p.addstatus(1L))
break;
}
TFilename outputname = _configfile->get("PATH", "OPZIONI");
outputname << "\\movim";
if (!recset.save_as(outputname))
cantwrite_box(outputname);
outputname << "/movim";
recset.save_as(outputname);
if (analset.items() > 0)
{
outputname = _configfile->get("PATH", "OPZIONI");
outputname << "\\movanal";
if (!analset.save_as(outputname))
cantwrite_box(outputname);
}
}
void TInvioSispac::sispac_reverse_moviva(long numreg, TIvamov_set & recset, const TString & cofi,
@ -1656,7 +1620,7 @@ void TInvioSispac::sispac_reverse_moviva(long numreg, TIvamov_set & recset, cons
}
}
void TInvioSispac::sispac_moviva()
void TInvioSispac::sispac_moviva()
{
TIvamov_set recset;
TString query;
@ -1819,8 +1783,8 @@ void TInvioSispac::sispac_reverse_moviva(long numreg, TIvamov_set & recset, cons
void TInvioSispac::sispac_intramov()
{
TIntramov_set recset;
/*
TIntramov_set recset;
TString query;
query << "USE " << LF_CLIFO
@ -1843,8 +1807,8 @@ void TInvioSispac::sispac_intramov()
void TInvioSispac::sispac_movpart()
{
TMovpart_set recset;
/*
TMovpart_set recset;
TString query;
query << "USE " << LF_CLIFO
@ -1927,7 +1891,6 @@ bool TInvioSispac::create()
_msk = new TInvioSispac_mask();
TFilename configname = "tc9300conf.ini";
configname.custom_path();
_configfile = new TConfig(configname);
_tabelle = new TRiclassifica_cache;
@ -1936,9 +1899,9 @@ bool TInvioSispac::create()
bool TInvioSispac::destroy()
{
delete _tabelle;
delete _configfile;
delete _msk;
delete _tabelle;
return TSkeleton_application::destroy();
}
@ -1961,7 +1924,7 @@ void TInvioSispac::main_loop()
int tc9300(int argc, char **argv)
{
TInvioSispac a;
a.run(argc, argv, "Invio dati contabilità Sispac/Cosmo");
a.run(argc, argv, TR("Invio contabilità Sispac/Cosmo"));
return 0;
}