From 0aabdc7bb6665d861d5f7926f4099a2dd82f6b2f Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 30 Mar 2009 15:36:52 +0000 Subject: [PATCH] Patch level : 10.0 276 Files correlati : tc9.exe Ricompilazione Demo : [ ] Commento : Correzzioni all'invio SISPAC / Cosmo git-svn-id: svn://10.65.10.50/trunk@18636 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- tc/tc9300.cpp | 220 ++++++++++++++++++++++++++++---------------------- 1 file changed, 124 insertions(+), 96 deletions(-) diff --git a/tc/tc9300.cpp b/tc/tc9300.cpp index af48d9ba3..f576ddd7c 100755 --- a/tc/tc9300.cpp +++ b/tc/tc9300.cpp @@ -49,6 +49,7 @@ TObject* TRiclassifica_cache::key2obj(const char* key) TString8 tab, cod; tok.get(0,tab); tok.get(1, cod); + _multirel.setkey(1); _multirel.put(MULTI_COD, tab); _multirel.put(MULTI_FIRST, cod); _multirel.put(MULTI_SECOND, ""); @@ -109,27 +110,27 @@ TMovim_set::TMovim_set() : TAS400_recordset("AS400(217)") create_field("COFI", -1, 16, _alfafld); create_field("PAIV", -1, 11, _alfafld); create_field("RAGSOC", -1, 50, _alfafld); - create_field("ESIVA", -1, 2, _intfld); - create_field("ESCOGE", -1, 4, _intfld); + create_field("ESIVA", -1, 2, _alfafld); + create_field("ESCOGE", -1, 4, _alfafld); create_field("ARGOMENTO", -1, 1, _alfafld); create_field("COMPETENZA", -1, 1, _alfafld); - create_field("NUMPART", -1, 7, _intfld); - create_field("NUMINT", -1, 3, _intfld); - create_field("DATAOP", -1, 6, _intfld); + create_field("NUMPART", -1, 7, _longzerofld); + create_field("NUMINT", -1, 3, _longzerofld); + create_field("DATAOP", -1, 6, _longzerofld); create_field("CODCONTO", -1, 12, _alfafld); - create_field("TIPOREG", -1, 2, _intfld); - create_field("CODREG", -1, 2, _intfld); - create_field("NUMPROT", -1, 7, _intfld); - create_field("TIPOART", -1, 1, _intfld); + create_field("TIPOREG", -1, 2, _longzerofld); + create_field("CODREG", -1, 2, _longzerofld); + create_field("NUMPROT", -1, 7, _longzerofld); + create_field("TIPOART", -1, 1, _longzerofld); create_field("TIPOMOV", -1, 1, _alfafld); - create_field("CODCOST", -1, 3, _intfld); - create_field("CODCAUS", -1, 5, _intfld); - create_field("NUMDESC", -1, 1, _intfld); + create_field("CODCOST", -1, 3, _longzerofld); + create_field("CODCAUS", -1, 5, _longzerofld); + create_field("NUMDESC", -1, 1, _longzerofld); create_field("SGNIMPT", -1, 1, _alfafld); - create_field("IMPORTO", -1, 13, _intfld); + create_field("IMPORTO", -1, 13, _longzerofld); create_field("SGNCONTIMP", -1, 1, _alfafld); create_field("ANNOTAZ", -1, 30, _alfafld); - create_field("DATADOC", -1, 6, _intfld); + create_field("DATADOC", -1, 6, _longzerofld); create_field("NUMDOC", -1, 7, _alfafld); create_field("TIPOANAG", -1, 1, _alfafld); create_field("FLGSTO", -1, 1, _alfafld); @@ -170,20 +171,20 @@ TIvamov_set::TIvamov_set() : TAS400_recordset("AS400(171)") create_field("COFI", -1, 16, _alfafld); create_field("PAIV", -1, 11, _alfafld); create_field("RAGSOC", -1, 50, _alfafld); - create_field("NUMPART", -1, 7, _intfld); - create_field("NUMINT", -1, 2, _intfld); + create_field("NUMPART", -1, 7, _longzerofld); + create_field("NUMINT", -1, 2, _longzerofld); create_field("SGNIMPB", -1, 1, _alfafld); - create_field("IMPONIBILE", -1, 13, _intfld); + create_field("IMPONIBILE", -1, 13, _longzerofld); create_field("SGNIMPIVA", -1, 1, _alfafld); - create_field("IMPOSTA", -1, 13, _intfld); - create_field("CODCAUS", -1, 5, _intfld); + create_field("IMPOSTA", -1, 13, _longzerofld); + create_field("CODCAUS", -1, 5, _longzerofld); create_field("CODIVA", -1, 3, _alfafld); create_field("FILLER", -1, 2, _alfafld); create_field("MERCIVEN", -1, 1, _alfafld); create_field("QUADROA", -1, 1, _alfafld); create_field("CODCOSTRIC", -1, 6, _alfafld); create_field("FLGES", -1, 1, _alfafld); - create_field("DETRAIB", -1, 5, _intfld); + create_field("DETRAIB", -1, 5, _longzerofld); create_field("CODTABPRODAG", -1, 3, _alfafld); create_field("CODIVACOMPAG", -1, 3, _alfafld); create_field("DATAFATTSOSP", -1, 1, _alfafld); @@ -226,29 +227,29 @@ TIntramov_set::TIntramov_set() : TAS400_recordset("AS400(206)") create_field("PAIV", -1, 11, _alfafld); create_field("RAGSOC", -1, 50, _alfafld); create_field("TIPOREC", -1, 1, _alfafld); - create_field("ESERCIZIO", -1, 4, _intfld); - create_field("NUMPART", -1, 7, _intfld); - create_field("NUMPROG", -1, 2, _intfld); + create_field("ESERCIZIO", -1, 4, _longzerofld); + create_field("NUMPART", -1, 7, _longzerofld); + create_field("NUMPROG", -1, 2, _longzerofld); create_field("SGNIMPT", -1, 1, _alfafld); - create_field("IMPORTO", -1, 13, _intfld); + create_field("IMPORTO", -1, 13, _longzerofld); create_field("SGNVAL", -1, 1, _alfafld); - create_field("IMPVAL", -1, 13, _intfld); - create_field("TRANSAZ", -1, 1, _intfld); - create_field("NOMENC", -1, 8, _intfld); - create_field("MASSA", -1, 10, _intfld); - create_field("UNIT", -1, 10, _intfld); + create_field("IMPVAL", -1, 13, _longzerofld); + create_field("TRANSAZ", -1, 1, _longzerofld); + create_field("NOMENC", -1, 8, _longzerofld); + create_field("MASSA", -1, 10, _longzerofld); + create_field("UNIT", -1, 10, _longzerofld); create_field("SGNSTAT", -1, 1, _alfafld); - create_field("IMPVAL", -1, 13, _intfld); + create_field("IMPVAL", -1, 13, _longzerofld); create_field("RGMCONS", -1, 1, _alfafld); - create_field("MODTRASP", -1, 1, _intfld); + create_field("MODTRASP", -1, 1, _longzerofld); create_field("PAPROV", -1, 2, _alfafld); create_field("PADEST", -1, 2, _alfafld); create_field("PROVINCIA", -1, 2, _alfafld); - create_field("MESE", -1, 2, _intfld); - create_field("TRIMESTRE", -1, 1, _intfld); - create_field("ANNO", -1, 1, _intfld); + create_field("MESE", -1, 2, _longzerofld); + create_field("TRIMESTRE", -1, 1, _longzerofld); + create_field("ANNO", -1, 1, _longzerofld); create_field("SGNATTRIB", -1, 1, _alfafld); - create_field("ESIVA", -1, 2, _intfld); + create_field("ESIVA", -1, 2, _longzerofld); create_field("CODCLIFO", -1, 6, _alfafld); create_field("LIBERO", -1, 20, _alfafld); create_field("FINEREC", -1, 2, _alfafld, true, "\r\n"); @@ -288,23 +289,23 @@ TRateimov_set::TRateimov_set() : TAS400_recordset("AS400(222)") create_field("COFI", -1, 16, _alfafld); create_field("PAIV", -1, 11, _alfafld); create_field("RAGSOC", -1, 50, _alfafld); - create_field("ESCOGEIN", -1, 4, _intfld); - create_field("ESCOGEFI", -1, 4, _intfld); - create_field("NUMPART", -1, 7, _intfld); - create_field("NUMPROG", -1, 3, _intfld); - create_field("INRATRIS", -1, 8, _intfld); - create_field("FIRATRIS", -1, 8, _intfld); + create_field("ESCOGEIN", -1, 4, _longzerofld); + create_field("ESCOGEFI", -1, 4, _longzerofld); + create_field("NUMPART", -1, 7, _longzerofld); + create_field("NUMPROG", -1, 3, _longzerofld); + create_field("INRATRIS", -1, 8, _longzerofld); + create_field("FIRATRIS", -1, 8, _longzerofld); create_field("CODCPART", -1, 6, _alfafld); create_field("CODCCONT", -1, 6, _alfafld); create_field("SGNIMPT", -1, 1, _alfafld); - create_field("IMPORTO", -1, 13, _intfld); + create_field("IMPORTO", -1, 13, _longzerofld); create_field("SGNCNIMPT", -1, 1, _alfafld); create_field("CODCLIFO", -1, 6, _alfafld); - create_field("DATADOC", -1, 8, _intfld); + create_field("DATADOC", -1, 8, _longzerofld); create_field("NUMDOC", -1, 7, _alfafld); create_field("ANNOTAZ", -1, 30, _alfafld); - create_field("DATAOP", -1, 8, _intfld); - create_field("CCOSTO", -1, 3, _intfld); + create_field("DATAOP", -1, 8, _longzerofld); + create_field("CCOSTO", -1, 3, _longzerofld); create_field("LIBERO", -1, 20, _alfafld); create_field("FINEREC", -1, 2, _alfafld,true,"\r\n"); } @@ -348,7 +349,7 @@ TForsisp_set::TForsisp_set() : TAS400_recordset("AS400(304)") create_field("INDIRIZZO", -1, 28, _alfafld); create_field("NUMERO", -1, 7, _alfafld); create_field("COMUNE", -1, 35, _alfafld); - create_field("CAP", -1, 5, _intfld); + create_field("CAP", -1, 5, _longzerofld); create_field("STATEST", -1, 35, _alfafld); create_field("TELEFONO", -1, 20, _alfafld); create_field("TELEFAX", -1, 20, _alfafld); @@ -400,7 +401,7 @@ TClisisp_set::TClisisp_set() : TAS400_recordset("AS400(304)") create_field("INDIRIZZO", -1, 28, _alfafld); create_field("NUMERO", -1, 7, _alfafld); create_field("COMUNE", -1, 35, _alfafld); - create_field("CAP", -1, 5, _intfld); + create_field("CAP", -1, 5, _longzerofld); create_field("STATEST", -1, 35, _alfafld); create_field("TELEFONO", -1, 20, _alfafld); create_field("TELEFAX", -1, 20, _alfafld); @@ -450,13 +451,13 @@ TMovplus_set::TMovplus_set() create_field("PAIV", -1, 11, _alfafld); create_field("RAGSOC", -1, 50, _alfafld); create_field("ARGOMENTO", -1, 1, _alfafld); - create_field("NUMPART", -1, 7, _intfld); - create_field("NUMINT", -1, 3, _intfld); + create_field("NUMPART", -1, 7, _longzerofld); + create_field("NUMINT", -1, 3, _longzerofld); create_field("PROMEM", -1, 50, _alfafld); create_field("NOTEVAR", -1, 1, _alfafld); create_field("CODANCOIN", -1, 6, _alfafld); create_field("TIPOCOIN", -1, 1, _alfafld); - create_field("PRIPCOIN", -1, 5, _intfld); + create_field("PRIPCOIN", -1, 5, _longzerofld); create_field("LIBERO", -1, 47, _alfafld); create_field("FINEREC", -1, 2, _alfafld,true,"\r\n"); } @@ -495,41 +496,41 @@ TMovpart_set::TMovpart_set() : TAS400_recordset("AS400(322)") create_field("COFI", -1, 16, _alfafld); create_field("PAIV", -1, 11, _alfafld); create_field("RAGSOC", -1, 50, _alfafld); - create_field("ARGOMENTO", -1, 1, _intfld); - create_field("NUMPART", -1, 7, _intfld); - create_field("NUMINT", -1, 3, _intfld); - create_field("DATAOP", -1, 8, _intfld); + 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("CODSCONT", -1, 6, _alfafld); create_field("CODCLIFO", -1, 6, _alfafld); - create_field("TIPOREG", -1, 2, _intfld); - create_field("CODREG", -1, 2, _intfld); - create_field("ANNODOC", -1, 4, _intfld); + create_field("TIPOREG", -1, 2, _longzerofld); + create_field("CODREG", -1, 2, _longzerofld); + create_field("ANNODOC", -1, 4, _longzerofld); create_field("NUMDOC", -1, 7, _alfafld); - create_field("NUMPROT", -1, 7, _intfld); - create_field("DATADOC", -1, 8, _intfld); - create_field("ANNOPAG", -1, 4, _intfld); + create_field("NUMPROT", -1, 7, _longzerofld); + create_field("DATADOC", -1, 8, _longzerofld); + create_field("ANNOPAG", -1, 4, _longzerofld); create_field("TIPOMOV", -1, 1, _alfafld); - create_field("CODCAUS", -1, 5, _intfld); + create_field("CODCAUS", -1, 5, _longzerofld); create_field("CODPAG", -1, 6, _alfafld); - create_field("DATASCAD", -1, 8, _intfld); - create_field("IMPTMOV", -1, 12, _intfld); + create_field("DATASCAD", -1, 8, _longzerofld); + create_field("IMPTMOV", -1, 12, _longzerofld); create_field("SGNIMPT", -1, 1, _alfafld); create_field("CODAG", -1, 3, _alfafld); create_field("CODVALEST", -1, 3, _alfafld); - create_field("CAMBIO", -1, 9, _intfld); - create_field("CODABICF", -1, 5, _intfld); - create_field("CODCABCF", -1, 5, _intfld); - create_field("CODABIAZ", -1, 5, _intfld); - create_field("CODCABAZ", -1, 5, _intfld); + create_field("CAMBIO", -1, 9, _longzerofld); + create_field("CODABICF", -1, 5, _longzerofld); + create_field("CODCABCF", -1, 5, _longzerofld); + create_field("CODABIAZ", -1, 5, _longzerofld); + create_field("CODCABAZ", -1, 5, _longzerofld); create_field("NUMDOC2", -1, 7, _alfafld); - create_field("NUMPROT2", -1, 7, _intfld); - create_field("DATADOC2", -1, 8, _intfld); + create_field("NUMPROT2", -1, 7, _longzerofld); + create_field("DATADOC2", -1, 8, _longzerofld); create_field("ANNOTAZ", -1, 30, _alfafld); - create_field("TIPOPAG", -1, 1, _intfld); - create_field("DTNEWSCAD", -1, 8, _intfld); - create_field("IMPTSP", -1, 12, _intfld); - create_field("CONTUNI", -1, 8, _intfld); - create_field("IMPTIVA", -1, 12, _intfld); + create_field("TIPOPAG", -1, 1, _longzerofld); + create_field("DTNEWSCAD", -1, 8, _longzerofld); + create_field("IMPTSP", -1, 12, _longzerofld); + create_field("CONTUNI", -1, 8, _longzerofld); + create_field("IMPTIVA", -1, 12, _longzerofld); create_field("TIPOANAG", -1, 1, _alfafld); create_field("TIPOVAL", -1, 1, _alfafld); create_field("LIBERO", -1, 15, _alfafld); @@ -785,8 +786,8 @@ void TInvioSispac::sispac_movim() const TString16 paiv(anagr.get(ANA_PAIV)); const TString16 cofi(anagr.get(ANA_COFI)); const TString80 ragsoc(anagr.get(ANA_RAGSOC)); - const int esiva = _dataini.year() % 100 ; - TString4 annoes; annoes.format("%04d", esc.date2esc(_datafin)) ; + TString4 esiva; esiva.format("%02d", _dataini.year() % 100) ; + TString4 annoes; annoes << esiva << esiva ; query << "USE " << LF_RMOV << " SELECT BETWEEN(" << LF_MOV << "." << MOV_DATAREG << "," << _dataini.date2ansi() << "," << _datafin.date2ansi() << ")&&(" << LF_MOV << "." << MOV_INVIATO << "!=\"X\")" @@ -855,6 +856,8 @@ void TInvioSispac::sispac_movim() for (bool ok = input.move_first(); ok ; ok = input.move_next()) { + const long codes = input.get(RMV_ANNOES).as_int(); + recset.new_rec(); var = cofi; recset.set("COFI", var); @@ -862,9 +865,10 @@ void TInvioSispac::sispac_movim() recset.set("PAIV", var); var = ragsoc; recset.set("RAGSOC", var); - var = format("%02ld", input.get(SLF_MOV "." MOV_ANNOIVA).as_int() % 100); + var = esiva; recset.set("ESIVA", var); - recset.set("ESCOGE", input.get(RMV_ANNOES)); + var = annoes; + recset.set("ESCOGE", var); const TString & reg = input.get(SLF_MOV "." MOV_REG).as_string(); if (reg.blank()) @@ -902,29 +906,31 @@ void TInvioSispac::sispac_movim() recset.set("ARGOMENTO", var); var = "N"; - const TDate & datacomp = input.get(SLF_MOV "." MOV_DATACOMP).as_date(); + const TDate datareg(input.get(SLF_MOV "." MOV_DATAREG).as_date()); - if (annoes != esc.date2esc(datacomp)) // qui - var = "Y"; + if (codes != esc.date2esc(datareg)) + var = "1"; recset.set("COMPETENZA", var); var = format("%07ld", input.get(RMV_NUMREG).as_int()); recset.set("NUMPART", var); var = format("%03ld", input.get(RMV_NUMRIG).as_int()); recset.set("NUMINT", var); - recset.set("DATAOP", input.get(RMV_DATAREG).as_date().string(brief, '\0', full, full, amg_date)); + recset.set("DATAOP", datareg.string(brief, '\0', full, full, amg_date)); TString16 codice; - int gruppo = input.get(RMV_GRUPPO).as_int(); + 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; - codice.format("%03ld%03ld%06ld", gruppo - , input.get(RMV_CONTO).as_int() - , input.get(RMV_SOTTOCONTO)); + codice.format("%03ld%03ld%06ld", gruppo, conto, sottoconto); + var = codice; recset.set("CODCONTO", var); recset.set("TIPOREG", treg); recset.set("CODREG", TVariant("01")); // in futuro campo su registro - var = format("%07ld", input.get(MOV_PROTIVA).as_int()); + const long prot = input.get(MOV_PROTIVA).as_int(); + var = format("%07ld", prot); recset.set("NUMPROT", var); const real * v = (real *) tipoart.objptr(lastmov - firstmov); // qui @@ -958,10 +964,12 @@ void TInvioSispac::sispac_movim() var = importo.string(13, 0, '0'); recset.set("IMPORTO", var); recset.set("SGNCONTIMP", input.get(RMV_SEZIONE)); - recset.set("DATADOC", input.get(MOV_DATADOC)); - recset.set("NUMDOC", input.get(MOV_NUMDOC)); + const TDate datadoc(input.get(SLF_MOV "." MOV_DATADOC).as_date()); + var = datadoc.string(brief, '\0', full, full, amg_date); + recset.set("DATADOC", var); + recset.set("NUMDOC", input.get(SLF_MOV "." MOV_NUMDOC).as_int()); - const long codcf = input.get(MOV_CODCF).as_int(); + const long codcf = input.get(SLF_MOV "." MOV_CODCF).as_int(); var = ""; if (codcf > 0L) @@ -1006,10 +1014,10 @@ void TInvioSispac::sispac_movim() const TString16 cofi(anagr.get(ANA_COFI)); const TString80 ragsoc(anagr.get(ANA_RAGSOC)); const int esiva = _dataini.year() % 100 ; - TString4 annoes; annoes.format("%04d", esc.date2esc(_datafin)) ; + TString4 annoes; annoes << esiva << esiva ; - query << "USE " << LF_RMOVIVA << " SELECT BETWEEN(" << LF_MOV << "." << MOV_DATAREG << "," << _dataini.date2ansi() << "," << _datafin.date2ansi() << ")&&" - << LF_MOV << "." << MOV_INVIATO << "!=\"X\"" + query << "USE " << LF_RMOVIVA << " SELECT BETWEEN(" << LF_MOV << "." << MOV_DATAREG << "," << _dataini.date2ansi() << "," << _datafin.date2ansi() << ")&&(" + << LF_MOV << "." << MOV_INVIATO << "!=\"X\")" << "\nJOIN " << LF_MOV << " INTO " << MOV_NUMREG << "==" << RMV_NUMREG; TISAM_recordset input(query); @@ -1070,14 +1078,34 @@ void TInvioSispac::sispac_movim() var = codiva; recset.set("CODIVA", var); recset.set("FILLER", TVariant("00")); - recset.set("MERCIVEN", TVariant("N")); + TVariant var1("N"); + TString8 codreg(input.get(SLF_MOV "." MOV_REG).as_string()); + + if (codreg.full()) + { + TRegistro reg(codreg); + if (reg.iva() == iva_vendite) + var1 = "M"; + } var = ""; if (codcaus == "00100") + { var = "S"; + var1 = "S"; + } else - if (codcaus =="00110") + if (codcaus == "00110") + { var = "N"; + var1 = "N"; + } + else + if (codcaus == "00200" || codcaus == "00220" || + codcaus == "00255" || codcaus == "00301") + var1 ="M"; + + recset.set("MERCIVEN", var1); recset.set("QUADROA", var); int tipodet; TCausale cau(ccaus, _dataini.year());