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:
guy 2012-09-18 10:37:28 +00:00
parent d53797b97c
commit ffc8c4a48d
7 changed files with 192 additions and 128 deletions

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;

View File

@ -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";

View File

@ -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;

View File

@ -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

View File

@ -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