From 32a4b4de3d6d5b0d5d613abf2bee5d821d03a5c4 Mon Sep 17 00:00:00 2001 From: guy Date: Tue, 23 Mar 2010 16:32:03 +0000 Subject: [PATCH] Patch level : 10.0 Files correlati : cg2100o.msk cg6.exe Ricompilazione Demo : [ ] Commento : Corretta importazione codice fiscale da trasfer (cliente CRPE) git-svn-id: svn://10.65.10.50/trunk@20264 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg2100o.uml | 21 ++++++-- cg/cg6400.cpp | 20 ++++--- cg/cg6500.cpp | 4 +- cg/cg6600.cpp | 96 ++-------------------------------- cg/cg6800.cpp | 1 - cg/cg6803.cpp | 2 +- cg/cg6900.cpp | 30 ++++------- cg/cg6902.cpp | 20 +++---- cg/cg6904.cpp | 26 ++++----- cg/cglib04.cpp | 139 ++++++++++++++++++++++--------------------------- cg/cglib04.h | 4 +- 11 files changed, 129 insertions(+), 234 deletions(-) diff --git a/cg/cg2100o.uml b/cg/cg2100o.uml index fe0f3c00b..207df1b48 100755 --- a/cg/cg2100o.uml +++ b/cg/cg2100o.uml @@ -1,6 +1,6 @@ #include "cg2100.h" -PAGE "Dati cliente/fornitore occasionale" -1 -1 72 14 +PAGE "Dati cliente/fornitore occasionale" -1 -1 72 12 STRING O_CODICE 16 BEGIN @@ -46,7 +46,7 @@ END GROUPBOX DLG_NULL 70 5 BEGIN - PROMPT 1 3 "Dati residenza" + PROMPT 1 3 "@bDati residenza" END STRING O_INDIRIZZO 40 @@ -112,7 +112,7 @@ END GROUPBOX DLG_NULL 70 4 BEGIN - PROMPT 1 8 "Dati nascita" + PROMPT 1 8 "@bDati nascita" END LIST O_SESSO 1 12 @@ -165,9 +165,20 @@ BEGIN CHECKTYPE NORMAL END -BUTTON DLG_OK 10 2 +ENDPAGE + +TOOLBAR "tobpar" 0 0 0 2 + +BUTTON DLG_OK 2 2 BEGIN - PROMPT -11 -1 "" + PROMPT 11 -1 "Registra" + PICTURE TOOL_SAVEREC +END + +BUTTON DLG_HELP 2 2 +BEGIN + PROMPT 12 -1 "" + PICTURE TOOL_HELP END ENDPAGE diff --git a/cg/cg6400.cpp b/cg/cg6400.cpp index 93569c04b..0dbb57a25 100755 --- a/cg/cg6400.cpp +++ b/cg/cg6400.cpp @@ -136,9 +136,7 @@ bool TRic_archivi::componi_path(const TMask& msk) TFilename path = msk.get(F_PATHNAME); const TString& drive = msk.get(F_DRIVE); - // Inizio cazzata - da sostituire con _disketto = ::os_is_removable_drive(drive) - _disketto = drive == "A:" || drive == "B:"; - // Fine cazzata + _disketto = xvt_fsys_is_floppy_drive(drive) != 0; const int pos = path.find(':'); if (pos) @@ -146,17 +144,17 @@ bool TRic_archivi::componi_path(const TMask& msk) if (path.full()) { - _marker << drive << "\\" << path << "\\marker"; - _trasfer << drive << "\\" << path << "\\trasfer"; + _marker << drive << SLASH << path << SLASH << "marker"; + _trasfer << drive << SLASH << path << SLASH << "trasfer"; if (!_disketto) - _pathname << drive << "\\" << path; + _pathname << drive << SLASH << path; } else { - _marker << drive << "\\marker"; - _trasfer << drive << "\\trasfer"; + _marker << drive << SLASH << "marker"; + _trasfer << drive << SLASH << "trasfer"; if (!_disketto) - _pathname << drive << "\\"; + _pathname << drive << SLASH; } return _disketto; @@ -206,7 +204,7 @@ bool TRic_archivi::leggi_marker() _numinv = atoi(buffer.sub(14,17)); const TString8 tmp = buffer.sub(17,23); - _datatras = converti(tmp, false); + _datatras = converti_data(tmp, false); _totrectras = atol(buffer.sub(23,29)); @@ -280,7 +278,7 @@ bool TRic_archivi::leggi_marker_rep() _totrectras = atol(buffer.sub(26,32)); _numinv = atoi(buffer.sub(15,18)); TString16 tmp = buffer.sub(18,26); - _datatras = converti(tmp,true); + _datatras = converti_data(tmp,true); if (_numdisk > 1) //Va fatto solo dal disco 2 in poi if (_nomeid != _nomeidp || _dittainv != _dittainvp || _totrectras != _totrectrasp diff --git a/cg/cg6500.cpp b/cg/cg6500.cpp index 5e63eb395..678ace3cd 100755 --- a/cg/cg6500.cpp +++ b/cg/cg6500.cpp @@ -661,7 +661,7 @@ int Tabinv_application::write(const TMask& m) _control_rec = _tras_file.record(); str.format("%03d", num); _control_rec.overwrite(str,75); - str = riconverti(data,TRUE); + str = riconverti_data(data,TRUE); _control_rec.overwrite(str,78); _control_rec.overwrite(sigla,240); str.format("%-60s", (const char*) chiave); @@ -704,7 +704,7 @@ int Tabinv_application::rewrite(const TMask& m) _control_rec = _tras_file.record(); str.format("%03d", num); _control_rec.overwrite(str,75); - str = riconverti(data,TRUE); + str = riconverti_data(data,TRUE); _control_rec.overwrite(str,78); _control_rec.overwrite(sigla,240); str.format("%-60s", (const char*) chiave); diff --git a/cg/cg6600.cpp b/cg/cg6600.cpp index df7869565..9909f9a7d 100755 --- a/cg/cg6600.cpp +++ b/cg/cg6600.cpp @@ -1164,88 +1164,6 @@ void TRic_tab::genera_codice_occasionale(TString& ocfpi) bool TRic_tab::occasionali(TString& ocfpi) { -/* Invoco la crecifissione in sala mensa!!!!!!!!!!!!!!!!! - TString chiave; - long prog = 0; - bool esiste = FALSE; - bool ric = TRUE; - - TString ocfpitemp = ocfpi; - - if (ocfpi.mid(0,3) == "RIC") - { -// TString nocfpi = _tmov->get("TOCFP"); -// nocfpi.trim(); - -// if (nocfpi.empty()) -// { - _occas->setkey(1); - _occas->zero(); - for (_occas->first(); !_occas->eof(); _occas->next()) - { - TString cfpi = _occas->get(OCC_CFPI); - if (cfpi.mid(0,3) == "RIC") - prog = atol(cfpi.mid(3,13)); - } - prog++; - - chiave.format("%3s%13ld", (const char*) "RIC", prog); - - esiste = FALSE; - ocfpi = chiave; - } - else - { - _occas->setkey(1); - _occas->zero(); - _occas->put("CFPI", ocfpi); - if (_occas->read() == NOERR) - { - TRecnotype rec = _occas->recno(); - _occas->setkey(1); - _occas->zero(); - for (_occas->first(); !_occas->eof(); _occas->next()) - { - TString cfpi = _occas->get(OCC_CFPI); - if (cfpi.mid(0,3) == "RIC") - prog = atol(cfpi.mid(3,13)); - } - prog++; - chiave.format("%3s%13ld", (const char*) "RIC", prog); - ocfpi = chiave; - _occas->readat(rec); - } - } -// } -// else -// { -// _occas->setkey(1); -// _occas->zero(); -// _occas->put("CFPI", nocfpi); -// _occas->read(); - -// esiste = TRUE; -// ocfpi = nocfpi; -// } - - _toccas->setkey(1); - _toccas->zero(); - _toccas->put(OCC_CFPI, ocfpitemp); - _toccas->read(); - - _occas->curr() = _toccas->curr(); - - if (esiste) - _occas->rewrite(); - else - { - _occas->put(OCC_CFPI, ocfpi); - _occas->write(); - } - - return TRUE; -*/ - // Mi posiziono sui dati dell'occasionale temporaneo da trasferire _toccas->setkey(1); _toccas->zero(); @@ -1344,17 +1262,12 @@ void TRic_tab::ricevi_movIVA(const TString& key, char uselab) _nuovareg = _tmov->get_long("TNUMREG"); - TString ocfpi = _tmov->get(MOV_OCFPI); - if (ocfpi.not_empty()) + TString16 ocfpi = _tmov->get(MOV_OCFPI); + if (ocfpi.full()) occasionali(ocfpi); - -// TRecnotype rec = _tmov->recno(); // Salvo il nuovo numero di -// _tmov->put("TOCFP", ocfpi); // registrazione sul file di lavoro -// _tmov->rewrite(); -// _tmov->readat(rec); TDate data74ter ( _tmov->get_date(MOV_DATA74TER) ); - TString codval ( _tmov->get (MOV_CODVALI) ); + TString4 codval ( _tmov->get (MOV_CODVALI) ); long codcf = _tmov->get_long(MOV_CODCF); real totdoc ( _tmov->get_real(MOV_TOTDOC) ); real cambioi ( _tmov->get_real(MOV_CAMBIOI) ); @@ -1383,8 +1296,7 @@ void TRic_tab::ricevi_movIVA(const TString& key, char uselab) } leggi_record_controllo(); - TString16 chiave; - chiave.format("%07ld", nreg); + TString8 chiave; chiave.format("%07ld", nreg); TString16 sigla; sigla << uselab; TString str = _record.overwrite(sigla,240); str = _record.overwrite(chiave,241); diff --git a/cg/cg6800.cpp b/cg/cg6800.cpp index c071f8666..cdf5b1d7f 100755 --- a/cg/cg6800.cpp +++ b/cg/cg6800.cpp @@ -1391,7 +1391,6 @@ void TVar_mov::registra_file_temp_rmov(long nr,int nri,int g,int c,long s,char s void TVar_mov::registra_IVA(TMask& m) { - if (!_righe) { TString16 ocfpi; diff --git a/cg/cg6803.cpp b/cg/cg6803.cpp index 4ec88daeb..6086617e1 100755 --- a/cg/cg6803.cpp +++ b/cg/cg6803.cpp @@ -181,7 +181,7 @@ void TVis_ric::registra(TMask& m) if (_registra) { TString4 nultras; nultras.format("%03s", (const char*)m.get(F_NULTRAS)); - TString16 datault = riconverti(m.get(F_DATAULTRAS),TRUE); + TString16 datault = riconverti_data(m.get(F_DATAULTRAS),TRUE); char agg_cau = m.get(F_AGGCAUSALI)[0]; char agg_clf = m.get(F_AGGCLIFO)[0]; char agg_pco = m.get(F_AGGPCON)[0]; diff --git a/cg/cg6900.cpp b/cg/cg6900.cpp index 07135d4fa..4d578b5ba 100755 --- a/cg/cg6900.cpp +++ b/cg/cg6900.cpp @@ -154,14 +154,14 @@ void TInv_cont::main_loop() TString data (msk->get(F_DATALIM)); if (_scelta == 'S') { - app = riconverti(data,FALSE); + app = riconverti_data(data,FALSE); str.format("%03d%6s", num, (const char*) app); aggiorna_marker(str,14); } else if (_scelta == 'P') { - app = riconverti(data,TRUE); + app = riconverti_data(data,TRUE); str.format("%03d%8s", num, (const char*) app); aggiorna_marker(str,15); } @@ -836,7 +836,7 @@ void TInv_cont::crea_marker(TMask& m) str.format("%03d", num); buffer.overwrite(str,14); TString16 data = m.get(F_DATALIM); - str = riconverti(data, false); + str = riconverti_data(data, false); buffer.overwrite(str,17); } else @@ -854,7 +854,7 @@ void TInv_cont::crea_marker(TMask& m) str.format("%03d", num); buffer.overwrite(str,15); TString data (m.get(F_DATALIM)); - str = riconverti(data,TRUE); + str = riconverti_data(data,TRUE); buffer.overwrite(str,18); } @@ -986,7 +986,7 @@ void TInv_cont::crea_record_controllo(TMask& m) buffer.overwrite(str,75); // Numero progr. invio TString16 data (m.get(F_DATALIM)); - str = riconverti(data, true); + str = riconverti_data(data, true); buffer.overwrite(str,78); // Data limite invio str.format("%-9s", (const char*)_files); @@ -1486,25 +1486,14 @@ bool TInv_cont::occasionali(const TString& cfpi) _occas->setkey(1); _occas->zero(); _occas->put("CFPI", cfpi); - _occas->read(); - _toccas->zero(); - _toccas->curr() = _occas->curr(); - - if (_toccas->read() == NOERR) - { - _toccas->zero(); - _toccas->curr() = _occas->curr(); - _toccas->rewrite(); - } - else + int err = _occas->read(); + if (err == NOERR) { - _toccas->zero(); _toccas->curr() = _occas->curr(); - _toccas->write(); + err = _toccas->write_rewrite(); } - - return TRUE; + return err == NOERR; } void TInv_cont::iva_inviata(long numreg) @@ -1517,7 +1506,6 @@ void TInv_cont::iva_inviata(long numreg) _mov->put(MOV_INVIVA, "X"); if (_flag_bollato) _mov->put(MOV_REGST, "X"); - _mov->rewrite(); } } diff --git a/cg/cg6902.cpp b/cg/cg6902.cpp index 438e9ab0c..3ef32a7f1 100755 --- a/cg/cg6902.cpp +++ b/cg/cg6902.cpp @@ -972,7 +972,7 @@ void TInv_cont::testata_trasfer(long nreg, int nrig, TString& record) record.overwrite(str,8); //Numero di riga TString datastr = _datareg.string(); - str = riconverti(datastr,FALSE); + str = riconverti_data(datastr,FALSE); str.format("%06s", (const char*) str); record.overwrite(str,15); //Data di registrazione @@ -988,7 +988,7 @@ void TInv_cont::testata_trasfer(long nreg, int nrig, TString& record) record.overwrite(str,21); //Segnalino della competenza TString datadocstr = _datadoc.string(); - str = riconverti(datadocstr,FALSE); + str = riconverti_data(datadocstr,FALSE); str.format("%06s", (const char*) str); record.overwrite(str,22); //Data documento @@ -1345,7 +1345,7 @@ bool TInv_cont::invio_mov_IVA() record.overwrite(str,49); //Sottoconto TString16 data74terstr = _data74ter.string(); - str = riconverti(data74terstr,FALSE); + str = riconverti_data(data74terstr,FALSE); str.format("%06s", (const char*) str); record.overwrite(str,55); //Data per registri 74 TER @@ -1470,12 +1470,12 @@ long TInv_cont::crea_record_riferimento_PN() record.overwrite(str,8); //Numero di riga TString16 datareg (_tpart->get_date(PART_DATAREG)); - str = riconverti(datareg,FALSE); + str = riconverti_data(datareg,FALSE); str.format("%06s", (const char*) str); record.overwrite(str,15); //Data di registrazione TString datadoc (_tpart->get_date(PART_DATADOC)); - str = riconverti(datareg,FALSE); + str = riconverti_data(datareg,FALSE); str.format("%06s", (const char*) str); record.overwrite(str,22); //Data documento @@ -1586,12 +1586,12 @@ void TInv_cont::partita2trasfer(TString& record, bool crea_record_riferimento) record.overwrite(str,37); //Tipo movimento TString datareg (_tpart->get_date(PART_DATAREG)); - str = riconverti(datareg,FALSE); + str = riconverti_data(datareg,FALSE); str.format("%06s", (const char*) str); record.overwrite(str,38); //Data di registrazione TString datadoc (_tpart->get_date(PART_DATADOC)); - str = riconverti(datadoc,FALSE); + str = riconverti_data(datadoc,FALSE); str.format("%06s", (const char*) str); record.overwrite(str,44); //Data documento @@ -1670,7 +1670,7 @@ void TInv_cont::partita2trasfer(TString& record, bool crea_record_riferimento) record.overwrite("6",160); // 6 decimali per cambio TString16 datacam (_tpart->get_date(PART_DATACAM)); - str = riconverti(datacam,FALSE); + str = riconverti_data(datacam,FALSE); str.format("%06s", (const char*) str); record.overwrite(str,106); //Data cambio @@ -1686,7 +1686,7 @@ void TInv_cont::partita2trasfer(TString& record, bool crea_record_riferimento) record.overwrite(str,114); //Tipo pagamento TString datapag (_tpart->get_date(PART_DATAPAG)); - str = riconverti(datapag,FALSE); + str = riconverti_data(datapag,FALSE); str.format("%06s", (const char*) str); record.overwrite(str,140); //Data pagamento } @@ -1902,7 +1902,7 @@ bool TInv_cont::invio_mov_SC() datascad = _tscad->get_date(SCAD_DATASCAD); - str = riconverti(datascad,FALSE); + str = riconverti_data(datascad,FALSE); str.format("%06s", (const char*) str); record.overwrite(str,140); //Data scadenza diff --git a/cg/cg6904.cpp b/cg/cg6904.cpp index 6b4c0f55c..1ad4c29ee 100755 --- a/cg/cg6904.cpp +++ b/cg/cg6904.cpp @@ -411,7 +411,7 @@ void TInv_cont::invio_clienti_fornitori() record.overwrite(str,478); TString data = _tclifo->get(CLI_DATANASC); - TString app = riconverti(data,TRUE); + TString app = riconverti_data(data,TRUE); str.format("%08s", (const char*) app); record.overwrite(str,508); //Data di registrazione @@ -681,22 +681,22 @@ void TInv_cont::invio_testata_movimenti() record.overwrite(str,2); //Numero di registrazione TString datareg = _tmov->get(MOV_DATAREG); - datastr = riconverti(datareg,TRUE); + datastr = riconverti_data(datareg,TRUE); str.format("%08s", (const char*) datastr); record.overwrite(str,60); //Data di registrazione TString datacomp = _tmov->get(MOV_DATACOMP); - datastr = riconverti(datacomp,TRUE); + datastr = riconverti_data(datacomp,TRUE); str.format("%08s", (const char*) datastr); record.overwrite(str,68); //Data di registrazione TString datadoc = _tmov->get(MOV_DATADOC); - datastr = riconverti(datadoc,TRUE); + datastr = riconverti_data(datadoc,TRUE); str.format("%08s", (const char*) datastr); record.overwrite(str,76); //Data di registrazione TString data74ter = _tmov->get(MOV_DATA74TER); - datastr = riconverti(data74ter,TRUE); + datastr = riconverti_data(data74ter,TRUE); str.format("%08s", (const char*) datastr); record.overwrite(str,84); //Data di 74 ter @@ -870,7 +870,7 @@ void TInv_cont::invio_occasionali(TString& record, TString& ocfpi) record.overwrite(str,453); TString datanasc = _toccas->get(OCC_DNASC); - TString app = riconverti(datanasc,TRUE); + TString app = riconverti_data(datanasc,TRUE); str.format("%08s", (const char*) app); record.overwrite(str,458); @@ -914,7 +914,7 @@ void TInv_cont::invio_righe_contabili() record.overwrite(sezione,60); TString16 datareg = _trmov->get(RMV_DATAREG); - TString16 app = riconverti(datareg,TRUE); + TString16 app = riconverti_data(datareg,TRUE); str.format("%08s", (const char*) app); record.overwrite(str,61); //Data di registrazione @@ -1181,17 +1181,17 @@ void TInv_cont::invio_partite() record.overwrite(str,70); //Numero riga registrazione contabile TString datareg = _tpart->get(PART_DATAREG); - datastr = riconverti(datareg,TRUE); + datastr = riconverti_data(datareg,TRUE); str.format("%08s", (const char*) datastr); record.overwrite(str,73); //Data di registrazione TString datadoc = _tpart->get(PART_DATADOC); - datastr = riconverti(datadoc,TRUE); + datastr = riconverti_data(datadoc,TRUE); str.format("%08s", (const char*) datastr); record.overwrite(str,81); //Data documento TString datapag = _tpart->get(PART_DATAPAG); - datastr = riconverti(datapag,TRUE); + datastr = riconverti_data(datapag,TRUE); str.format("%08s", (const char*) datastr); record.overwrite(str,89); //Data pagamento @@ -1282,7 +1282,7 @@ void TInv_cont::invio_partite() record.overwrite(str,229); //Importo in valuta TString datacam = _tpart->get(PART_DATACAM); - datastr = riconverti(datacam,TRUE); + datastr = riconverti_data(datacam,TRUE); str.format("%08s", (const char*) datastr); record.overwrite(str,245); //Data cambio @@ -1480,7 +1480,7 @@ void TInv_cont::invio_scadenze() record.overwrite(str,132); //Importo in valuta TString datascad = _tscad->get(SCAD_DATASCAD); - TString app = riconverti(datascad,TRUE); + TString app = riconverti_data(datascad,TRUE); str.format("%08s", (const char*) app); record.overwrite(str,148); //Data scadenza @@ -1489,7 +1489,7 @@ void TInv_cont::invio_scadenze() record.overwrite(str,156); //Numero sollecito TString datasoll = _tscad->get(SCAD_DATASOLL); - app = riconverti(datasoll,TRUE); + app = riconverti_data(datasoll,TRUE); str.format("%08s", (const char*) app); record.overwrite(str,158); //Data sollecito diff --git a/cg/cglib04.cpp b/cg/cglib04.cpp index 40172ec8e..1d78e9a88 100755 --- a/cg/cglib04.cpp +++ b/cg/cglib04.cpp @@ -490,7 +490,7 @@ bool TTransfer_file::read_control_rec() _nultras = atoi(_control_rec->sub(75,78)); const TString& tmp = _control_rec->sub(78,86); - _dataultras = converti(tmp, true); + _dataultras = converti_data(tmp, true); _sigle_file = _control_rec->sub(86,95); _sigle_file.rtrim(); _nrec_file = _control_rec->sub(95,149); @@ -518,7 +518,7 @@ bool TTransfer_file::read_control_rec_t() _ditta = atol(_control_rec_t.sub(25,29)); _nultras = atoi(_control_rec_t.sub(29,32)); const TString8 tmp = _control_rec_t.sub(32,38); - _dataultras = converti(tmp,false); + _dataultras = converti_data(tmp,false); _sigle_file = _control_rec_t.sub(38,47); _nrec_file = _control_rec_t.sub(47,101); @@ -1356,7 +1356,7 @@ int TTransfer_file::trasfer_data_tab(TIsamtempfile& file, TRectype& dep) int TTransfer_file::annoes_datacomp(const TString& record, TDate& datacomp) { const TString& tmp = record.sub(15,21); - _datareg = converti(tmp,false); + _datareg = converti_data(tmp,false); const int segn = atoi(record.sub(21,22)); int aep = 0; @@ -1660,7 +1660,7 @@ void TTransfer_file::write_tmp_movPN(TString& record) dep->put(MOV_ANNOIVA, annoiva); } if (flag == 2) - dep->put(fname,converti(field,false)); + dep->put(fname,converti_data(field,false)); } else if (logicnum == LF_RMOV && (fname == RMV_NUMREG || fname == RMV_NUMRIG) ) @@ -1680,13 +1680,12 @@ void TTransfer_file::write_tmp_movPN(TString& record) else dep->put(fname, field); - numfield++; - key.format("%2s%d", (const char*) sigla,numfield); + key.format("%2s%d", (const char*) sigla, ++numfield); } while (trc.is_key((const char*) key)); _prog->addstatus(1); - if (importo != ZERO) + if (!importo.is_zero()) trasfer_data_mov(*file, *dep); if (create) @@ -1700,18 +1699,15 @@ void TTransfer_file::write_tmp_movPN(TString& record) int TTransfer_file::trasfer_data_mov(TIsamtempfile& file, TRectype& dep) { - file.zero(); file.curr() = dep; if (file.read() == NOERR) { - file.zero(); file.curr() = dep; file.rewrite(); } else { - file.zero(); file.curr() = dep; file.write(); } @@ -1757,7 +1753,7 @@ void TTransfer_file::scrivi_occasionali(const TString& record, TString& cfpi) if (ind.full()) civ = numero_civico(ind); - cfpi = record.sub(176, 192); // Patch per crp: cerca il codice fiscale in un campo non documentato + cfpi = record.sub(176, 192); // Personalizzazione per CRPE: cerca il codice fiscale in un campo non documentato if (cfpi.blank()) cfpi.format("RIC%13ld", ++_npoccas); @@ -1775,12 +1771,17 @@ void TTransfer_file::scrivi_occasionali(const TString& record, TString& cfpi) _toccas->put(OCC_INDIR, ind); _toccas->put(OCC_CIV, civ); _toccas->put(OCC_CAP, cap); - if (_cod_com.full()) - _toccas->put(OCC_COM, _cod_com); - - int err = _toccas->write(); - if (err == _isreinsert) - err = _toccas->rewrite(); + _toccas->put(OCC_COM, _cod_com); + + if (cfpi.len() == 16) + _toccas->put(OCC_COFI,cfpi); else + if (cfpi.len() == 11 && real::is_natural(cfpi)) + { + _toccas->put(OCC_COFI,cfpi); + _toccas->put(OCC_PAIV,cfpi); + } + + _toccas->write_rewrite(); } void TTransfer_file::write_tmp_movIVA(const TString& record) @@ -1794,8 +1795,6 @@ void TTransfer_file::write_tmp_movIVA(const TString& record) if (trc.is_key(key)) { - const int fnrmiva = 11; - //ai fini del trasferimento (flag record gia trasferito e nuovo ultimo numero di registrazione). TIsamtempfile* file = NULL; TRectype* dep = NULL; @@ -1808,7 +1807,7 @@ void TTransfer_file::write_tmp_movIVA(const TString& record) if (_numreg == _numreg_piva) { - numfield = fnrmiva; + numfield = 11; key.format("%2s%d", (const char*)sigla,numfield); } else @@ -1892,17 +1891,22 @@ void TTransfer_file::write_tmp_movIVA(const TString& record) } } - if (logicnum == LF_MOV && ( fname == MOV_NUMREG || flag == 2 ) ) + if (logicnum == LF_MOV && ( fname == MOV_NUMREG || fname == MOV_OCFPI || flag == 2 ) ) { if (fname == MOV_NUMREG) { dep->put(MOV_NUMREG, _numreg); - dep->put(MOV_OCFPI, cfpi); - } - + if (cfpi.full()) + dep->put(MOV_OCFPI, cfpi); + } else + if (fname == MOV_OCFPI) + { + if (field.full()) // Non sovrascrivo eventuale cfpi + dep->put(fname, field); + } else if (flag == 2) { - TString80 f = converti(field,false); + const char* f = converti_data(field,false); dep->put(fname,f); } } @@ -1917,10 +1921,8 @@ void TTransfer_file::write_tmp_movIVA(const TString& record) else dep->put(fname, field); - numfield++; - key.format("%2s%d", (const char*)sigla,numfield); - } - while (trc.is_key(key)); + key.format("%2s%d", (const char*)sigla, ++numfield); + } while (trc.is_key(key)); _prog->addstatus(1); trasfer_data_moviva(*file, *dep); @@ -1945,7 +1947,7 @@ int TTransfer_file::trasfer_data_moviva(TIsamtempfile& file, const TRectype& dep { TDate data74ter = dep.get_date(MOV_DATA74TER); TString4 codval (dep.get (MOV_CODVALI)); - TString80 ocfpi (dep.get (MOV_OCFPI)); + TString16 ocfpi (dep.get (MOV_OCFPI)); long codcf = dep.get_long(MOV_CODCF); real cambioi (dep.get_real(MOV_CAMBIOI)); real corrlire (dep.get_real(MOV_CORRLIRE)); @@ -2301,7 +2303,7 @@ void TTransfer_file::partita(TString& record) if (flag == 2) { - const TString& f = converti(field,false); + const TString& f = converti_data(field,false); _deppart->put(fname,f); } else @@ -2458,7 +2460,7 @@ void TTransfer_file::scadenza(TString& record) if (flag == 2) { - TString f = converti(field,false); + const char* f = converti_data(field,false); _depscad->put(fname,f); } else @@ -2934,14 +2936,13 @@ void TTransfer_file::pagsca(TString& record) else if (flag == 2) { - TString f = converti(field,false); + const char* f = converti_data(field,false); _deppagsca->put(fname,f); } else _deppagsca->put(fname, field); - numfield++; - key.format("%2s%d", (const char*) sigla,numfield); + key.format("%2s%d", (const char*) sigla, ++numfield); } while (trc.is_key((const char*) key)); } // if (trc.is_key((const char*) key) @@ -3412,7 +3413,7 @@ void TTransfer_file::scrivi_PN(long nrec) { TString buffer(sizeT); - _prog = new TProgind (nrec,TR("Trasferimento Movimenti di Prima nota"),false, true, 1); + _prog = new TProgind (nrec,TR("Trasferimento Movimenti di Prima nota"),false, true); TRic_recfield recf (_ttab->curr(), "S0", 0, sizeT); @@ -3435,7 +3436,7 @@ void TTransfer_file::scrivi_IVA(long nrec) { TString buffer(sizeT); - _prog = new TProgind (nrec,TR("Trasferimento Movimenti Iva"),false, true, 1); + _prog = new TProgind (nrec,TR("Trasferimento Movimenti Iva"),false, true); const TRic_recfield recf(_ttab->curr(), "S0", 0, sizeT); @@ -3925,7 +3926,7 @@ void TTransfer_file::write_clienti_fornitori(TString& record) if (flag == 2) { - TString f = converti(field,true); + TString f = converti_data(field,true); _depclifo->put(fname,f); } else @@ -4214,7 +4215,7 @@ void TTransfer_file::write_testata_movimenti(TString& record) if (flag == 2) { - const TString16 f = converti(field, true); + const TString16 f = converti_data(field, true); _depmov->put(fname,f); if (fname == MOV_DATACOMP) @@ -4248,7 +4249,7 @@ void TTransfer_file::write_testata_movimenti(TString& record) _depoccas->zero(); if (fname == OCC_DNASC) { - field = converti(field,TRUE); + field = converti_data(field,TRUE); } else if (fname == OCC_CFPI) @@ -4431,7 +4432,7 @@ void TTransfer_file::write_righe_contabili(const TString& record) } if (flag == 2) - _deprmov->put(fname,converti(field,true)); + _deprmov->put(fname,converti_data(field,true)); else if (fname == RMV_NUMREG) { @@ -4775,14 +4776,13 @@ void TTransfer_file::write_partite(const TString& record) if (flag == 2) { - TString f = converti(field,true); + const char* f = converti_data(field,true); _deppart->put(fname,f); } else _deppart->put(fname, field); - numfield++; - key.format("%2s%d", (const char*) sigla,numfield); + key.format("%2s%d", (const char*) sigla, ++numfield); } while (trc.is_key((const char*) key)); } @@ -4908,7 +4908,7 @@ void TTransfer_file::write_scadenze(const TString& record) if (flag == 2) { - TString80 f = converti(field,true); + const char* f = converti_data(field,true); _depscad->put(fname,f); } else @@ -5065,14 +5065,13 @@ void TTransfer_file::write_pagsca(const TString& record) if (flag == 2) { - TString f = converti(field,true); + const char* f = converti_data(field,true); _depmov->put(fname,f); } else _deppagsca->put(fname, field); - numfield++; - key.format("%2s%d", (const char*) sigla,numfield); + key.format("%2s%d", (const char*) sigla, ++numfield); } while (trc.is_key((const char*) key)); } @@ -5201,7 +5200,7 @@ int pack(bool vis, int num, TString& name) return err; } -const char* converti(const TString& data_AS400, bool anno_di_quattro) +const char* converti_data(const TString& data_AS400, bool anno_di_quattro) { // if (data_AS400 == "000000" || data_AS400 == "00000000") if (real::is_null(data_AS400)) @@ -5209,46 +5208,34 @@ const char* converti(const TString& data_AS400, bool anno_di_quattro) TString& TEMP = get_tmp_string(); if (anno_di_quattro) - { - TEMP = data_AS400.mid(6,2); - TEMP << '-' << data_AS400.mid(4,2); - TEMP << '-' << data_AS400.mid(0,4); - } + TEMP << data_AS400.mid(6,2) << '-' << data_AS400.mid(4,2) << '-' << data_AS400.mid(0,4); else - { - TEMP = data_AS400.mid(4,2); - TEMP << "-" << data_AS400.mid(2,2); - TEMP << "-" << (data_AS400[0] < '8' ? "20" : "19") << data_AS400.mid(0,2); - } + TEMP << data_AS400.mid(4,2) << "-" << data_AS400.mid(2,2) << "-" << (data_AS400[0] < '8' ? "20" : "19") << data_AS400.mid(0,2); + return TEMP; } -const char* riconverti (const TString& data_PC,bool anno_di_quattro) -{ - TString& TEMP = get_tmp_string(); +const char* riconverti_data(const TString& data_PC,bool anno_di_quattro) +{ + if (data_PC.empty()) + return EMPTY_STRING; + TString& TEMP = get_tmp_string(); if (anno_di_quattro) - { - TEMP = data_PC.mid(6,4); - TEMP << data_PC.mid(3,2); - TEMP << data_PC.mid(0,2); - } + TEMP << data_PC.mid(6,4) << data_PC.mid(3,2) << data_PC.mid(0,2); else - { - TEMP = data_PC.mid(8,2); - TEMP << data_PC.mid(3,2); - TEMP << data_PC.mid(0,2); - } + TEMP << data_PC.mid(8,2) << data_PC.mid(3,2) << data_PC.mid(0,2); return TEMP; } TDate TTransfer_file::data_fine_esercizio(int aep) const { - TDate datacomp; TEsercizi_contabili esc; - if (esc.exist(aep)) - datacomp = esc[aep].fine(); - return datacomp; + + TDate datai, dataf; + // if (esc.exist(aep)) dataf = esc[aep].fine(); // Metodo antico + esc.code2range(aep, datai, dataf); // Metodo moderno + return dataf; } int date2esc(const TDate& d, int* prevesc) diff --git a/cg/cglib04.h b/cg/cglib04.h index b94587a35..f6d1bde23 100755 --- a/cg/cglib04.h +++ b/cg/cglib04.h @@ -51,8 +51,8 @@ HIDDEN int pos[15] = {0,15,25,29,32,38,47,234,235,236,237,238,239,240,241}; const int LEN_REC_HEAD = 1025; -const char* converti(const TString& data_AS400,bool anno_di_quattro); -const char* riconverti(const TString& data_PC,bool anno_di_quattro); +const char* converti_data(const TString& data_AS400,bool anno_di_quattro); +const char* riconverti_data(const TString& data_PC,bool anno_di_quattro); int date2esc(const TDate& d, int* prevesc = NULL); int packindex(bool vis, int num, TString& name);