Corretto trasferimento sispac
git-svn-id: svn://10.65.10.50/branches/R_10_00@22729 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d53797b97c
commit
ffc8c4a48d
@ -13,7 +13,6 @@ int main(int argc, char** argv)
|
|||||||
case 1: tc1200(argc,argv); break; // Tabelle
|
case 1: tc1200(argc,argv); break; // Tabelle
|
||||||
default: tc1100(argc,argv); break; // trasferimento zucchetti
|
default: tc1100(argc,argv); break; // trasferimento zucchetti
|
||||||
}
|
}
|
||||||
exit(0);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@ int main(int argc, char** argv)
|
|||||||
case 7: tc2800(argc,argv); break; // Riclassificazione conti TeamSystem
|
case 7: tc2800(argc,argv); break; // Riclassificazione conti TeamSystem
|
||||||
default: ; tc2100(argc,argv); break;
|
default: ; tc2100(argc,argv); break;
|
||||||
}
|
}
|
||||||
exit(0);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ bool TInvioW_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
|
|||||||
if (e==fe_init && o.empty())
|
if (e==fe_init && o.empty())
|
||||||
{
|
{
|
||||||
set(F_CODDITTA, main_app().get_firm());
|
set(F_CODDITTA, main_app().get_firm());
|
||||||
((TEdit_field&) o).check();
|
((TEdit_field&)o).check();
|
||||||
disable(F_CODDITTA);
|
disable(F_CODDITTA);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
269
tc/tc9300.cpp
269
tc/tc9300.cpp
@ -22,7 +22,9 @@
|
|||||||
#include <rmov.h>
|
#include <rmov.h>
|
||||||
#include <rmoviva.h>
|
#include <rmoviva.h>
|
||||||
#include <multirel.h>
|
#include <multirel.h>
|
||||||
|
|
||||||
#include "../ca/rip.h"
|
#include "../ca/rip.h"
|
||||||
|
#include "../ca/rrip.h"
|
||||||
|
|
||||||
#define SLF_MOV "23"
|
#define SLF_MOV "23"
|
||||||
#define ALIAS_REG 100
|
#define ALIAS_REG 100
|
||||||
@ -36,17 +38,19 @@
|
|||||||
class TRiclassifica_cache : public TCache
|
class TRiclassifica_cache : public TCache
|
||||||
{
|
{
|
||||||
TLocalisamfile _multirel;
|
TLocalisamfile _multirel;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual TObject* key2obj(const char* key);
|
virtual TObject* key2obj(const char* key);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const char * sdecode(const char* tab, const TString& cod);
|
const char * sdecode(const char* tab, const TString& cod);
|
||||||
long decode(const char* tab, const TString& cod);
|
long decode(const char* tab, const TString& cod);
|
||||||
const TString & sdecode_caufor(const TString& cod);
|
const TString& sdecode_caufor(const TString& cod);
|
||||||
const TString & sdecode_caureg(const TString& cod);
|
const TString& sdecode_caureg(const TString& cod);
|
||||||
const TString & sdecode_caugiro(const TString& cod);
|
const TString& sdecode_caugiro(const TString& cod);
|
||||||
const TString & sdecode_contov(const TString& cod);
|
const TString& sdecode_contov(const TString& cod);
|
||||||
const TString & sdecode_caucon(const TString& cod);
|
const TString& sdecode_caucon(const TString& cod);
|
||||||
const TString & sdecode_sezcon(const TString& cod);
|
const TString& sdecode_sezcon(const TString& cod);
|
||||||
bool sdecode_rc(const TString& cod);
|
bool sdecode_rc(const TString& cod);
|
||||||
TRiclassifica_cache() : _multirel(LF_MULTIREL) { _multirel.setkey(2);}
|
TRiclassifica_cache() : _multirel(LF_MULTIREL) { _multirel.setkey(2);}
|
||||||
};
|
};
|
||||||
@ -63,7 +67,7 @@ TObject* TRiclassifica_cache::key2obj(const char* key)
|
|||||||
_multirel.put(MULTI_SECOND, "");
|
_multirel.put(MULTI_SECOND, "");
|
||||||
int err = _multirel.read(_isgteq);
|
int err = _multirel.read(_isgteq);
|
||||||
if (err == NOERR && _multirel.get(MULTI_FIRST) == cod)
|
if (err == NOERR && _multirel.get(MULTI_FIRST) == cod)
|
||||||
return new TString(_multirel.get(MULTI_SECOND));
|
return _multirel.get(MULTI_SECOND).dup();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,6 +236,69 @@ const char * TRiclassifica_cache::sdecode(const char* tab, const TString& cod)
|
|||||||
return ric ? (const char *) *ric : "";
|
return ric ? (const char *) *ric : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TRip_cache
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TRip_cache : public TCache
|
||||||
|
{
|
||||||
|
TLocalisamfile _rip, _rrip;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual TObject* key2obj(const char* key);
|
||||||
|
|
||||||
|
public:
|
||||||
|
bool cdc(int gruppo, int conto, long sottoconto, TString& cdc, TString& cms);
|
||||||
|
|
||||||
|
TRip_cache() : _rip(LF_RIP), _rrip(LF_RRIP) { _rip.setkey(3); }
|
||||||
|
};
|
||||||
|
|
||||||
|
TObject* TRip_cache::key2obj(const char* key)
|
||||||
|
{
|
||||||
|
TToken_string* tok = new TToken_string(key);
|
||||||
|
|
||||||
|
const int g = tok->get_int();
|
||||||
|
const int c = tok->get_int();
|
||||||
|
const long s = tok->get_long();
|
||||||
|
|
||||||
|
tok->cut(0);
|
||||||
|
|
||||||
|
_rip.zero();
|
||||||
|
_rip.put(RIP_TIPO, "I");
|
||||||
|
_rip.put(RIP_GRUPPO, g);
|
||||||
|
_rip.put(RIP_CONTO, c);
|
||||||
|
_rip.put(RIP_SOTTOCONTO, s);
|
||||||
|
if (_rip.read(_isgteq) == NOERR && _rip.get_int(RIP_GRUPPO)==g && _rip.get_int(RIP_CONTO)==c && _rip.get_long(RIP_SOTTOCONTO)==s)
|
||||||
|
{
|
||||||
|
_rrip.zero();
|
||||||
|
_rrip.put(RRIP_TIPO, _rip.get(RIP_TIPO));
|
||||||
|
_rrip.put(RRIP_CODICE, _rip.get(RIP_CODICE));
|
||||||
|
_rrip.put(RRIP_NRIGA, 1);
|
||||||
|
|
||||||
|
if (_rrip.read() == NOERR)
|
||||||
|
{
|
||||||
|
tok->add(_rrip.get(RRIP_CODFASE), 0); // CDC contabile
|
||||||
|
tok->add(_rrip.get(RRIP_CODCMS), 1); // CDC analitico
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return tok;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TRip_cache::cdc(int gruppo, int conto, long sottoconto, TString& cdc, TString& cms)
|
||||||
|
{
|
||||||
|
TString16 gcs; gcs.format("%d|%d|%d", gruppo, conto, sottoconto);
|
||||||
|
const TToken_string* tok = (const TToken_string*)objptr(gcs);
|
||||||
|
if (tok && tok->full())
|
||||||
|
{
|
||||||
|
tok->get(0, cdc);
|
||||||
|
tok->get(1, cms);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cdc = cms = "";
|
||||||
|
return cms.full();
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TSISPAC_set
|
// TSISPAC_set
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -659,6 +726,8 @@ protected:
|
|||||||
void invio_sispac();
|
void invio_sispac();
|
||||||
void sispac_cli();
|
void sispac_cli();
|
||||||
void sispac_for();
|
void sispac_for();
|
||||||
|
const TString& bill2code(const TISAM_recordset& input) const;
|
||||||
|
|
||||||
void sispac_reverse_movim(long numreg, TMovim_set & recset, long firstmov, long lastmov,
|
void sispac_reverse_movim(long numreg, TMovim_set & recset, long firstmov, long lastmov,
|
||||||
const TString & cofi, const TString & paiv,
|
const TString & cofi, const TString & paiv,
|
||||||
const TString & ragsoc, const TString & esiva,
|
const TString & ragsoc, const TString & esiva,
|
||||||
@ -667,6 +736,7 @@ protected:
|
|||||||
const TString & cofi, const TString & paiv,
|
const TString & cofi, const TString & paiv,
|
||||||
const TString & ragsoc, const TString & esiva,
|
const TString & ragsoc, const TString & esiva,
|
||||||
const TString & annoes, bool comp);
|
const TString & annoes, bool comp);
|
||||||
|
void fill_last_cdc(const TString& cdc, TMovim_set& recset) const;
|
||||||
void sispac_movim();
|
void sispac_movim();
|
||||||
void sispac_reverse_moviva(long numreg, TIvamov_set & recset, const TString & cofi,
|
void sispac_reverse_moviva(long numreg, TIvamov_set & recset, const TString & cofi,
|
||||||
const TString & paiv, const TString & ragsoc);
|
const TString & paiv, const TString & ragsoc);
|
||||||
@ -716,51 +786,41 @@ const TString & TInvioSispac::scod2caucf(const TString& cod)
|
|||||||
|
|
||||||
const TString & TInvioSispac::scod2caureg(const TString& cod)
|
const TString & TInvioSispac::scod2caureg(const TString& cod)
|
||||||
{
|
{
|
||||||
TString & codricl = get_tmp_string();
|
|
||||||
|
|
||||||
if (cod.full())
|
if (cod.full())
|
||||||
codricl = _tabelle->sdecode_caureg(cod);
|
return _tabelle->sdecode_caureg(cod);
|
||||||
return codricl;
|
return EMPTY_STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString & TInvioSispac::scod2caugiro(const TString& cod)
|
const TString & TInvioSispac::scod2caugiro(const TString& cod)
|
||||||
{
|
{
|
||||||
TString & codricl = get_tmp_string();
|
|
||||||
|
|
||||||
if (cod.full())
|
if (cod.full())
|
||||||
codricl = _tabelle->sdecode_caugiro(cod);
|
return _tabelle->sdecode_caugiro(cod);
|
||||||
return codricl;
|
return EMPTY_STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString & TInvioSispac::scod2caucon(const TString& cod)
|
const TString & TInvioSispac::scod2caucon(const TString& cod)
|
||||||
{
|
{
|
||||||
TString& codricl = get_tmp_string();
|
|
||||||
if (cod.full())
|
if (cod.full())
|
||||||
codricl = _tabelle->sdecode_caucon(cod);
|
return _tabelle->sdecode_caucon(cod);
|
||||||
return codricl;
|
return EMPTY_STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString & TInvioSispac::scod2sezcon(const TString& cod)
|
const TString & TInvioSispac::scod2sezcon(const TString& cod)
|
||||||
{
|
{
|
||||||
TString& codricl = get_tmp_string();
|
|
||||||
if (cod.full())
|
if (cod.full())
|
||||||
codricl = _tabelle->sdecode_sezcon(cod);
|
return _tabelle->sdecode_sezcon(cod);
|
||||||
return codricl;
|
return EMPTY_STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString & TInvioSispac::scod2contov(const TString& cod)
|
const TString & TInvioSispac::scod2contov(const TString& cod)
|
||||||
{
|
{
|
||||||
TString & codricl = get_tmp_string();
|
|
||||||
|
|
||||||
if (cod.full())
|
if (cod.full())
|
||||||
codricl = _tabelle->sdecode_contov(cod);
|
return _tabelle->sdecode_contov(cod);
|
||||||
return codricl;
|
return EMPTY_STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TInvioSispac::scod2rc(const TString& cod)
|
bool TInvioSispac::scod2rc(const TString& cod)
|
||||||
{
|
{
|
||||||
TString & codricl = get_tmp_string();
|
|
||||||
|
|
||||||
if (cod.full())
|
if (cod.full())
|
||||||
return _tabelle->sdecode_rc(cod);
|
return _tabelle->sdecode_rc(cod);
|
||||||
return false;
|
return false;
|
||||||
@ -917,6 +977,23 @@ void TInvioSispac::sispac_for()
|
|||||||
recset.save_as(outputname);
|
recset.save_as(outputname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const TString& TInvioSispac::bill2code(const TISAM_recordset& input) const
|
||||||
|
{
|
||||||
|
const char tipocf = input.get(RMV_TIPOC).as_string()[0];
|
||||||
|
const long sottoconto = input.get(RMV_SOTTOCONTO).as_int();
|
||||||
|
const int conto = input.get(RMV_CONTO).as_int();
|
||||||
|
int gruppo = input.get(RMV_GRUPPO).as_int();
|
||||||
|
if (gruppo >= 10)
|
||||||
|
gruppo = 0;
|
||||||
|
|
||||||
|
TString& codice = get_tmp_string();
|
||||||
|
if (tipocf > 0)
|
||||||
|
codice.format("%01d%02d001%06ld", gruppo, conto, sottoconto);
|
||||||
|
else
|
||||||
|
codice.format("%01d%02d%03ld ", gruppo, conto, sottoconto);
|
||||||
|
return codice;
|
||||||
|
}
|
||||||
|
|
||||||
void TInvioSispac::sispac_reverse_movim(long numreg, TMovim_set & recset, long firstmov, long lastmov,
|
void TInvioSispac::sispac_reverse_movim(long numreg, TMovim_set & recset, long firstmov, long lastmov,
|
||||||
const TString & cofi, const TString & paiv,
|
const TString & cofi, const TString & paiv,
|
||||||
const TString & ragsoc, const TString & esiva,
|
const TString & ragsoc, const TString & esiva,
|
||||||
@ -958,42 +1035,31 @@ void TInvioSispac::sispac_reverse_movim(long numreg, TMovim_set & recset, long f
|
|||||||
var = "V";
|
var = "V";
|
||||||
treg = "03";
|
treg = "03";
|
||||||
recset.set("ARGOMENTO", var);
|
recset.set("ARGOMENTO", var);
|
||||||
var = "N";
|
|
||||||
|
|
||||||
const TDate datareg(input.get(SLF_MOV "." MOV_DATAREG).as_date());
|
var = comp ? "1" : "N";
|
||||||
|
|
||||||
if (comp)
|
|
||||||
var = "1";
|
|
||||||
recset.set("COMPETENZA", var);
|
recset.set("COMPETENZA", var);
|
||||||
var = format("%07ld", input.get(RMV_NUMREG).as_int() + REG_OFFSET);
|
|
||||||
|
var = format("%07ld", input.get(RMV_NUMREG).as_int() + REG_OFFSET);
|
||||||
recset.set("NUMPART", var);
|
recset.set("NUMPART", var);
|
||||||
var = format("%03ld", input.get(RMV_NUMRIG).as_int());
|
var = format("%03ld", input.get(RMV_NUMRIG).as_int());
|
||||||
recset.set("NUMINT", var);
|
recset.set("NUMINT", var);
|
||||||
|
const TDate datareg(input.get(SLF_MOV "." MOV_DATAREG).as_date());
|
||||||
recset.set("DATAOP", datareg.string(brief, '\0', full, full, amg_date));
|
recset.set("DATAOP", datareg.string(brief, '\0', full, full, amg_date));
|
||||||
|
const TString8 ccaus(input.get(SLF_MOV "." MOV_CODCAUS).as_string());
|
||||||
|
|
||||||
TString16 codice;
|
TString16 codice;
|
||||||
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();
|
|
||||||
TString8 ccaus(input.get(SLF_MOV "." MOV_CODCAUS).as_string());
|
|
||||||
|
|
||||||
if (gruppo == 10)
|
|
||||||
gruppo = 0;
|
|
||||||
|
|
||||||
if (rowtype == "I") // verificare
|
if (rowtype == "I") // verificare
|
||||||
codice = scod2contov(ccaus);
|
codice = scod2contov(ccaus);
|
||||||
else
|
else
|
||||||
if (input.get(RMV_TIPOC).as_string().full())
|
codice = bill2code(input);
|
||||||
codice.format("%01ld%02ld000%06ld", gruppo, conto, sottoconto);
|
recset.set("CODCONTO", codice);
|
||||||
else
|
|
||||||
codice.format("%01ld%02ld%03ld000000", gruppo, conto, sottoconto);
|
recset.set("TIPOREG", treg);
|
||||||
var = codice;
|
|
||||||
recset.set("CODCONTO", var);
|
|
||||||
recset.set("TIPOREG", treg);
|
|
||||||
recset.set("CODREG", TVariant("01")); // in futuro campo su registro
|
recset.set("CODREG", TVariant("01")); // in futuro campo su registro
|
||||||
const long prot = input.get(SLF_MOV "." MOV_PROTIVA).as_int();
|
const long prot = input.get(SLF_MOV "." MOV_PROTIVA).as_int();
|
||||||
var = format("%07ld", prot);
|
var = format("%07ld", prot);
|
||||||
recset.set("NUMPROT", var);
|
recset.set("NUMPROT", var);
|
||||||
const real * v = (real *) tipoart.objptr(lastmov - firstmov); // qui
|
const real* v = (real*)tipoart.objptr(lastmov - firstmov); // qui
|
||||||
|
|
||||||
if (v != NULL)
|
if (v != NULL)
|
||||||
recset.set("TIPOART", *v);
|
recset.set("TIPOART", *v);
|
||||||
@ -1112,28 +1178,18 @@ void TInvioSispac::sispac_reverse_giro(long numreg, TMovim_set & recset, long fi
|
|||||||
var = format("%03ld", input.get(RMV_NUMRIG).as_int());
|
var = format("%03ld", input.get(RMV_NUMRIG).as_int());
|
||||||
recset.set("NUMINT", var);
|
recset.set("NUMINT", var);
|
||||||
recset.set("DATAOP", datareg.string(brief, '\0', full, full, amg_date));
|
recset.set("DATAOP", datareg.string(brief, '\0', full, full, amg_date));
|
||||||
TString16 codice;
|
const TString8 ccaus(input.get(SLF_MOV "." MOV_CODCAUS).as_string());
|
||||||
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();
|
|
||||||
TString8 ccaus(input.get(SLF_MOV "." MOV_CODCAUS).as_string());
|
|
||||||
|
|
||||||
if (gruppo == 10)
|
TString16 codice;
|
||||||
gruppo = 0;
|
|
||||||
|
|
||||||
if (rowtype == "I") // verificare
|
if (rowtype == "I") // verificare
|
||||||
codice = scod2contov(ccaus);
|
codice = scod2contov(ccaus);
|
||||||
else
|
else
|
||||||
|
{
|
||||||
if (rowtype == "D" || rowtype == "N") // verificare
|
if (rowtype == "D" || rowtype == "N") // verificare
|
||||||
codice = codice_cf;
|
codice = codice_cf;
|
||||||
else
|
else
|
||||||
if (input.get(RMV_TIPOC).as_string().full())
|
codice = bill2code(input);
|
||||||
{
|
}
|
||||||
codice.format("%01ld%02ld000%06ld", gruppo, conto, sottoconto);
|
|
||||||
codice_cf = codice;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
codice.format("%01ld%02ld%03ld000000", gruppo, conto, sottoconto);
|
|
||||||
var = codice;
|
var = codice;
|
||||||
recset.set("CODCONTO", var);
|
recset.set("CODCONTO", var);
|
||||||
recset.set("TIPOREG", treg);
|
recset.set("TIPOREG", treg);
|
||||||
@ -1202,6 +1258,16 @@ void TInvioSispac::sispac_reverse_giro(long numreg, TMovim_set & recset, long fi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TInvioSispac::fill_last_cdc(const TString& cdc, TMovim_set& recset) const
|
||||||
|
{
|
||||||
|
for (bool ok = recset.move_last(); ok; ok = recset.move_prev())
|
||||||
|
{
|
||||||
|
if (recset.get("CODCOST").as_int() == 0)
|
||||||
|
recset.set("CODCOST", cdc);
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TInvioSispac::sispac_movim()
|
void TInvioSispac::sispac_movim()
|
||||||
{
|
{
|
||||||
@ -1213,6 +1279,8 @@ void TInvioSispac::sispac_movim()
|
|||||||
TEsercizi_contabili esc;
|
TEsercizi_contabili esc;
|
||||||
long numregrev = -1L;
|
long numregrev = -1L;
|
||||||
|
|
||||||
|
TRip_cache rip;
|
||||||
|
|
||||||
key << prefix().get_codditta();
|
key << prefix().get_codditta();
|
||||||
|
|
||||||
const TRectype & ditta = cache().get(LF_NDITTE, key);
|
const TRectype & ditta = cache().get(LF_NDITTE, key);
|
||||||
@ -1275,7 +1343,7 @@ void TInvioSispac::sispac_movim()
|
|||||||
rdare++;
|
rdare++;
|
||||||
else
|
else
|
||||||
ravere++;
|
ravere++;
|
||||||
p.addstatus(1L);;
|
p.addstatus(1L);
|
||||||
if (p.iscancelled())
|
if (p.iscancelled())
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1296,6 +1364,10 @@ void TInvioSispac::sispac_movim()
|
|||||||
|
|
||||||
lastmov = 0;
|
lastmov = 0;
|
||||||
int nrow = 0;
|
int nrow = 0;
|
||||||
|
|
||||||
|
TString8 lastcdc;
|
||||||
|
real impcdc;
|
||||||
|
|
||||||
for (bool ok = input.move_first(); ok ; ok = input.move_next())
|
for (bool ok = input.move_first(); ok ; ok = input.move_next())
|
||||||
{
|
{
|
||||||
const long codes = input.get(RMV_ANNOES).as_int();
|
const long codes = input.get(RMV_ANNOES).as_int();
|
||||||
@ -1310,6 +1382,10 @@ void TInvioSispac::sispac_movim()
|
|||||||
{
|
{
|
||||||
lastmov = numreg;
|
lastmov = numreg;
|
||||||
nrow = 0;
|
nrow = 0;
|
||||||
|
if (lastcdc.full())
|
||||||
|
fill_last_cdc(lastcdc, recset);
|
||||||
|
lastcdc.cut(0);
|
||||||
|
impcdc = ZERO;
|
||||||
}
|
}
|
||||||
if (numregrev < 0L && scod2rc(ccaus))
|
if (numregrev < 0L && scod2rc(ccaus))
|
||||||
numregrev = numreg;
|
numregrev = numreg;
|
||||||
@ -1368,9 +1444,7 @@ void TInvioSispac::sispac_movim()
|
|||||||
}
|
}
|
||||||
const TString4 tipomov = var.as_string();
|
const TString4 tipomov = var.as_string();
|
||||||
recset.set("ARGOMENTO", var);
|
recset.set("ARGOMENTO", var);
|
||||||
var = "N";
|
var = comp ? "1" : "N";
|
||||||
if (comp)
|
|
||||||
var = "1";
|
|
||||||
recset.set("COMPETENZA", var);
|
recset.set("COMPETENZA", var);
|
||||||
var = format("%07ld", numreg);
|
var = format("%07ld", numreg);
|
||||||
recset.set("NUMPART", var);
|
recset.set("NUMPART", var);
|
||||||
@ -1378,22 +1452,10 @@ void TInvioSispac::sispac_movim()
|
|||||||
recset.set("NUMINT", var);
|
recset.set("NUMINT", var);
|
||||||
recset.set("DATAOP", datareg.string(brief, '\0', full, full, amg_date));
|
recset.set("DATAOP", datareg.string(brief, '\0', full, full, amg_date));
|
||||||
|
|
||||||
const char tipocf = input.get(RMV_TIPOC).as_string()[0];
|
const TString16 codice = bill2code(input);
|
||||||
long gruppo = input.get(RMV_GRUPPO).as_int();
|
recset.set("CODCONTO", codice);
|
||||||
const long conto = input.get(RMV_CONTO).as_int();
|
|
||||||
const long sottoconto = input.get(RMV_SOTTOCONTO).as_int();
|
|
||||||
if (gruppo == 10)
|
|
||||||
gruppo = 0;
|
|
||||||
|
|
||||||
TString16 codice;
|
|
||||||
if (tipocf >= 'C')
|
|
||||||
codice.format("%01ld%02ld000%06ld", gruppo, conto, sottoconto);
|
|
||||||
else
|
|
||||||
codice.format("%01ld%02ld%03ld000000", gruppo, conto, sottoconto);
|
|
||||||
var = codice;
|
|
||||||
recset.set("CODCONTO", var);
|
|
||||||
recset.set("TIPOREG", treg);
|
recset.set("TIPOREG", treg);
|
||||||
recset.set("CODREG", TVariant("01")); // in futuro campo su registro
|
recset.set("CODREG", reg.right(2)); // in futuro campo su registro
|
||||||
const long prot = input.get(SLF_MOV "." MOV_PROTIVA).as_int();
|
const long prot = input.get(SLF_MOV "." MOV_PROTIVA).as_int();
|
||||||
var = format("%07ld", prot);
|
var = format("%07ld", prot);
|
||||||
recset.set("NUMPROT", var);
|
recset.set("NUMPROT", var);
|
||||||
@ -1407,6 +1469,7 @@ void TInvioSispac::sispac_movim()
|
|||||||
const TString8 codcauscon = scod2caucon(ccaus);
|
const TString8 codcauscon = scod2caucon(ccaus);
|
||||||
const TString4 sezcon = scod2sezcon(ccaus);
|
const TString4 sezcon = scod2sezcon(ccaus);
|
||||||
|
|
||||||
|
const char tipocf = input.get(RMV_TIPOC).as_string()[0];
|
||||||
if (tipocf >= 'C')
|
if (tipocf >= 'C')
|
||||||
{
|
{
|
||||||
if (codcauscf.full())
|
if (codcauscf.full())
|
||||||
@ -1416,16 +1479,14 @@ void TInvioSispac::sispac_movim()
|
|||||||
codcaus = codcauscon;
|
codcaus = codcauscon;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
if (sezcon == sezione && codcauscon.full())
|
if (sezcon == sezione && codcauscon.full())
|
||||||
codcaus = codcauscon;
|
codcaus = codcauscon;
|
||||||
var = "R";
|
}
|
||||||
if (codcaus == "00255")
|
var = (atoi(codcaus) == 255) ? "S" : "R"; // Come da tracciato
|
||||||
var = "S";
|
|
||||||
recset.set("TIPOMOV", var);
|
recset.set("TIPOMOV", var);
|
||||||
recset.set("CODCOST", TVariant("000"));
|
recset.set("CODCOST", TVariant("000"));
|
||||||
var = codcaus;
|
recset.set("CODCAUS", codcaus);
|
||||||
recset.set("CODCAUS", var);
|
|
||||||
|
|
||||||
recset.set("NUMDESC", TVariant("0"));
|
recset.set("NUMDESC", TVariant("0"));
|
||||||
|
|
||||||
real importo = input.get(RMV_IMPORTO).as_real();
|
real importo = input.get(RMV_IMPORTO).as_real();
|
||||||
@ -1468,16 +1529,24 @@ void TInvioSispac::sispac_movim()
|
|||||||
|
|
||||||
if (tipocf <= ' ' && has_module(CMAUT, CHK_DONGLE) /*&& !has_module(CAAUT, CHK_DONGLE)*/)
|
if (tipocf <= ' ' && has_module(CMAUT, CHK_DONGLE) /*&& !has_module(CAAUT, CHK_DONGLE)*/)
|
||||||
{
|
{
|
||||||
TLocalisamfile rip(LF_RIP); rip.setkey(3);
|
const int gruppo = input.get(RMV_GRUPPO).as_int();
|
||||||
rip.put(RIP_TIPO, 'B');
|
const int conto = input.get(RMV_CONTO).as_int();
|
||||||
rip.put(RIP_GRUPPO, gruppo);
|
const long sottoconto = input.get(RMV_SOTTOCONTO).as_int();
|
||||||
rip.put(RIP_CONTO, conto);
|
|
||||||
rip.put(RIP_SOTTOCONTO, sottoconto);
|
TString8 cdc, cms;
|
||||||
// if (rip.read(_isgteq) == NOERR && rip.get_int(RIP_GRUPPO)==gruppo && rip.get_int(RIP_CONTO)==conto && rip.get_long(RIP_SOTTOCONTO)==sottoconto)
|
if (rip.cdc(gruppo, conto, sottoconto, cdc, cms))
|
||||||
{
|
{
|
||||||
|
const real imp = recset.get("IMPORTO").as_real();
|
||||||
|
if (lastcdc.blank() || imp > impcdc)
|
||||||
|
{
|
||||||
|
lastcdc = cdc;
|
||||||
|
impcdc = imp;
|
||||||
|
}
|
||||||
|
|
||||||
analset.new_rec();
|
analset.new_rec();
|
||||||
analset.set("COFI", recset.get("COFI"));
|
analset.set("COFI", recset.get("COFI"));
|
||||||
analset.set("PAIV", recset.get("RAGSOC"));
|
analset.set("PAIV", recset.get("PAIV"));
|
||||||
|
analset.set("RAGSOC", recset.get("RAGSOC"));
|
||||||
analset.set("ESCOGE", recset.get("ESCOGE"));
|
analset.set("ESCOGE", recset.get("ESCOGE"));
|
||||||
analset.set("NUMPART", recset.get("NUMPART"));
|
analset.set("NUMPART", recset.get("NUMPART"));
|
||||||
analset.set("NUMINT", recset.get("NUMINT"));
|
analset.set("NUMINT", recset.get("NUMINT"));
|
||||||
@ -1493,10 +1562,10 @@ void TInvioSispac::sispac_movim()
|
|||||||
analset.set("NUMDOC", recset.get("NUMDOC"));
|
analset.set("NUMDOC", recset.get("NUMDOC"));
|
||||||
analset.set("DATADOC", recset.get("DATADOC"));
|
analset.set("DATADOC", recset.get("DATADOC"));
|
||||||
analset.set("NUMPROT", recset.get("NUMPROT"));
|
analset.set("NUMPROT", recset.get("NUMPROT"));
|
||||||
|
analset.set("CDCCONT", cdc); // Centro di costo contabile
|
||||||
analset.set("DATAOPANAL", recset.get("DATAOP"));
|
analset.set("DATAOPANAL", recset.get("DATAOP"));
|
||||||
analset.set("CDC", recset.get("CODCONTO"));
|
analset.set("CDC", recset.get("CODCONTO")); // Conto analitico = conto contabile
|
||||||
analset.set("CDC1", rip.get(RIP_CODCMS));
|
analset.set("CDC1", cms); // Centro di costo analitico
|
||||||
analset.set("CDC2", rip.get(RIP_CODFASE));
|
|
||||||
analset.set("FINEREC", "\r\n");
|
analset.set("FINEREC", "\r\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1504,6 +1573,8 @@ void TInvioSispac::sispac_movim()
|
|||||||
if (!p.addstatus(1L))
|
if (!p.addstatus(1L))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (lastcdc.full())
|
||||||
|
fill_last_cdc(lastcdc, recset);
|
||||||
|
|
||||||
TFilename outputname = _configfile->get("PATH", "OPZIONI");
|
TFilename outputname = _configfile->get("PATH", "OPZIONI");
|
||||||
outputname << "\\movim";
|
outputname << "\\movim";
|
||||||
|
@ -49,6 +49,7 @@ void TSispac_multirel_app::init_query_insert_mode(TMask& m)
|
|||||||
m.show(-2);
|
m.show(-2);
|
||||||
m.enable(-4);
|
m.enable(-4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TSispac_multirel_app::init_modify_mode(TMask& m)
|
void TSispac_multirel_app::init_modify_mode(TMask& m)
|
||||||
{
|
{
|
||||||
TMultirel_application::init_modify_mode(m);
|
TMultirel_application::init_modify_mode(m);
|
||||||
@ -58,7 +59,7 @@ void TSispac_multirel_app::init_modify_mode(TMask& m)
|
|||||||
m.disable(-4);
|
m.disable(-4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TSispac_multirel_app::init_insert_mode(TMask& m)
|
void TSispac_multirel_app::init_insert_mode(TMask& m)
|
||||||
{
|
{
|
||||||
TMultirel_application::init_insert_mode(m);
|
TMultirel_application::init_insert_mode(m);
|
||||||
m.show(-1);
|
m.show(-1);
|
||||||
@ -73,12 +74,12 @@ bool TSispac_multirel_app::user_create()
|
|||||||
|
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
TMask & m = *get_mask();
|
TMask& m = *get_mask();
|
||||||
|
|
||||||
set_search_field(F_CODTAB);
|
set_search_field(F_CODTAB);
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tc9400(int argc, char* argv[])
|
int tc9400(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TSispac_multirel_app a;
|
TSispac_multirel_app a;
|
||||||
|
@ -10,3 +10,4 @@
|
|||||||
#define F_COD_CONTOV 110
|
#define F_COD_CONTOV 110
|
||||||
#define F_COD_CAUSCO 111
|
#define F_COD_CAUSCO 111
|
||||||
#define F_COD_SEZCO 112
|
#define F_COD_SEZCO 112
|
||||||
|
#define F_COD_IVA 113
|
||||||
|
@ -16,7 +16,7 @@ BEGIN
|
|||||||
PROMPT 50 50 ""
|
PROMPT 50 50 ""
|
||||||
ITEM "SCIVA|SCIVA"
|
ITEM "SCIVA|SCIVA"
|
||||||
FIELD COD
|
FIELD COD
|
||||||
FLAGS "D"
|
FLAGS "DG"
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -26,16 +26,17 @@ BEGIN
|
|||||||
FIELD FIRST
|
FIELD FIRST
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
USE LF_MULTIREL
|
USE LF_MULTIREL
|
||||||
|
JOIN %IVA INTO CODTAB==FIRST
|
||||||
INPUT COD F_COD SELECT
|
INPUT COD F_COD SELECT
|
||||||
INPUT FIRST F_CODTAB
|
INPUT FIRST F_CODTAB
|
||||||
DISPLAY "Codice" FIRST
|
DISPLAY "Codice" FIRST
|
||||||
DISPLAY "Descrizione@60" DATA
|
DISPLAY "Descrizione@50" 4->S0
|
||||||
DISPLAY "Codice IVA Sispac" SECOND
|
DISPLAY "Codice IVA Sispac" SECOND
|
||||||
OUTPUT F_CODTAB FIRST
|
OUTPUT F_CODTAB FIRST
|
||||||
OUTPUT F_CODTAB1 FIRST
|
OUTPUT F_CODTAB1 FIRST
|
||||||
OUTPUT F_DESC DATA
|
OUTPUT F_DESC 4->S0
|
||||||
OUTPUT F_COD_CAMPO SECOND
|
OUTPUT F_COD_IVA SECOND
|
||||||
// CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FIELD FIRST
|
FIELD FIRST
|
||||||
KEY 1
|
KEY 1
|
||||||
GROUP 1
|
GROUP 1
|
||||||
@ -46,40 +47,32 @@ BEGIN
|
|||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
USE %IVA
|
USE %IVA
|
||||||
INPUT CODTAB F_CODTAB1
|
INPUT CODTAB F_CODTAB1
|
||||||
DISPLAY "Cod." CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_CODTAB CODTAB
|
OUTPUT F_CODTAB CODTAB
|
||||||
OUTPUT F_CODTAB1 CODTAB
|
OUTPUT F_CODTAB1 CODTAB
|
||||||
OUTPUT F_DESC S0
|
CHECKTYPE REQUIRED
|
||||||
// CHECKTYPE REQUIRED
|
|
||||||
FIELD FIRST
|
FIELD FIRST
|
||||||
KEY 1
|
KEY 1
|
||||||
FLAGS "U"
|
FLAGS "UH"
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESC 50
|
STRING F_DESC 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 10 2 "Descrizione "
|
PROMPT 10 2 "Descrizione "
|
||||||
USE LF_MULTIREL KEY 2
|
FLAGS "D"
|
||||||
INPUT COD F_COD SELECT
|
|
||||||
INPUT DATA F_DESC
|
|
||||||
DISPLAY "Descrizione@60" DATA
|
|
||||||
DISPLAY "Codice" FIRST
|
|
||||||
DISPLAY "Codice IVA Sispac" SECOND
|
|
||||||
COPY OUTPUT F_CODTAB
|
|
||||||
FIELD DATA
|
|
||||||
KEY 3
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_COD_CAMPO 3
|
STRING F_COD_IVA 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Codice IVA Sispac "
|
PROMPT 2 4 "Codice IVA Sispac "
|
||||||
CHECKTYPE NORMAL
|
|
||||||
KEY 1
|
|
||||||
GROUP 3
|
|
||||||
FIELD SECOND
|
FIELD SECOND
|
||||||
|
KEY 1
|
||||||
|
GROUP 3
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
VALIDATE NOT_EMPTY_FUNC
|
||||||
|
WARNIG "E' necessario inserire il codice IVA corrispondente"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user