Creazione campo conto fiscale
Fase2 : Conversioni git-svn-id: svn://10.65.10.50/trunk@1686 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9d202e74c2
commit
df2e9fd5c3
149
ba/bacnv.cpp
149
ba/bacnv.cpp
@ -5,7 +5,8 @@
|
||||
#include <isam.h>
|
||||
#include <mailbox.h>
|
||||
#include <progind.h>
|
||||
#include <prefix.h>
|
||||
#include <prefix.h>
|
||||
#include <scanner.h>
|
||||
#include <tabutil.h>
|
||||
#include <urldefid.h>
|
||||
#include <utility.h>
|
||||
@ -19,7 +20,7 @@
|
||||
|
||||
#include <rmov.h>
|
||||
|
||||
#define usage "Errore - uso : bacnv [1|2|3|4] ditta"
|
||||
#define usage "Errore - uso : bacnv [1|2|3|4|5|6] ditta"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Applicazione di conversione archivi XBase, valida per tutti e 4 i tipi di DLL
|
||||
@ -159,6 +160,7 @@ public:
|
||||
void patch_com(void);
|
||||
void zero_770(void);
|
||||
void convert_patty(void);
|
||||
void convert_codconc(void);
|
||||
|
||||
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
||||
};
|
||||
@ -233,7 +235,10 @@ bool TConversione_archivi::menu(MENU_TAG)
|
||||
if (_codditta == 0)
|
||||
zero_770();
|
||||
case 5:
|
||||
convert_patty();
|
||||
convert_patty();
|
||||
case 6:
|
||||
if (_codditta == 0)
|
||||
convert_codconc();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -531,11 +536,11 @@ if (d.eod() > 0L)
|
||||
|
||||
}
|
||||
if (_codditta == 0)
|
||||
{
|
||||
TSystemisamfile f(LF_FORM);
|
||||
{
|
||||
TDir d;
|
||||
TSystemisamfile f(LF_FORM);
|
||||
TFilename lf;
|
||||
|
||||
|
||||
d.get(LF_FORM);
|
||||
lf.format("%sstd/lf0054.txt", __ptprf);
|
||||
if (fexist(lf) && fexist(d.filename()))
|
||||
@ -543,6 +548,136 @@ if (_codditta == 0)
|
||||
}
|
||||
}
|
||||
|
||||
void TConversione_archivi::convert_codconc()
|
||||
{
|
||||
// costruisce le tabelle di confronto
|
||||
TAssoc_array conc_cessate;
|
||||
TScanner oc(format("%sstd/oconc00.txt", __ptprf));
|
||||
|
||||
for (TString16 s(oc.line()); s.not_empty(); s = oc.line())
|
||||
conc_cessate.add(s);
|
||||
// (fase 1)
|
||||
// scorre il file anagrafica
|
||||
TLocalisamfile anagr(LF_ANAG);
|
||||
TLocalisamfile comuni(LF_COMUNI);
|
||||
int nerr = 0;
|
||||
// se il file anagrafica non é vuoto
|
||||
const int anag_items = anagr.items();
|
||||
if (anag_items > 0)
|
||||
{
|
||||
TProgind p(anag_items, "Conversione archivio anagrafica", FALSE, TRUE, 70);
|
||||
|
||||
p.setstatus(1L);
|
||||
|
||||
// per ogni anagrafica blocca il record
|
||||
for (anagr.first(_lock); anagr.good(); anagr.next(_lock))
|
||||
{
|
||||
// legge il codice comune
|
||||
TString16 com = anagr.get("COMRF");
|
||||
|
||||
if (com.empty())
|
||||
com = anagr.get("COMRES");
|
||||
// se il comune non é vuoto recupera il comune
|
||||
if (com.not_empty())
|
||||
{
|
||||
comuni.zero();
|
||||
comuni.put("COM", com);
|
||||
// se non é un comune di una nuova provincia e il comune esiste
|
||||
if (!conc_cessate.is_key(com))
|
||||
{
|
||||
if (comuni.read() == NOERR)
|
||||
{
|
||||
// legge il codice concessione
|
||||
TString16 conc(comuni.get("UFFCONC"));
|
||||
// se il codice concessione é cessato
|
||||
if (conc_cessate.is_key(conc))
|
||||
{
|
||||
// scrive il codice concessione sull' anagrafica
|
||||
anagr.put("UFFCONC", conc);
|
||||
anagr.rewrite();
|
||||
}
|
||||
// altrimenti sblocca il record
|
||||
else
|
||||
anagr.read(_iscurr, _unlock);
|
||||
}
|
||||
// altrimenti sblocca il record e conteggia l' errore
|
||||
else
|
||||
{
|
||||
anagr.read(_iscurr, _unlock);
|
||||
nerr++;
|
||||
}
|
||||
}
|
||||
}
|
||||
// altrimenti sblocca il record
|
||||
else
|
||||
anagr.read(_iscurr, _unlock);
|
||||
}
|
||||
}
|
||||
// segnala gli errori
|
||||
if (nerr)
|
||||
error_box("La conversione della anagrafiche non ha trovato %d comuni", nerr);
|
||||
nerr = 0;
|
||||
|
||||
// (fase 2)
|
||||
// vuota la tabella concessioni
|
||||
{
|
||||
TTable uffconc("%UCC");
|
||||
|
||||
for (uffconc.first(_lock); uffconc.good(); uffconc.next(_lock))
|
||||
uffconc.remove();
|
||||
}
|
||||
// carica la nuova
|
||||
{
|
||||
TSystemisamfile tabcom(LF_TABCOM);
|
||||
|
||||
tabcom.load(format("%sstd/nconc00.txt", __ptprf));
|
||||
}
|
||||
// (fase 3)
|
||||
// scorre il file con i codici comuni e le nuove concessioni
|
||||
TScanner nc(format("%sstd/ncom00.txt", __ptprf));
|
||||
TProgind p(comuni.items(), "Conversione archivio comuni", FALSE, TRUE, 70);
|
||||
#ifdef DBG
|
||||
TTable uffconc("%UCC");
|
||||
TToken_string concerr;
|
||||
#endif
|
||||
|
||||
p.setstatus(1L);
|
||||
// per ogni comune
|
||||
for (TToken_string ts(nc.line()); ts.not_empty(); ts = nc.line())
|
||||
{
|
||||
p.addstatus(1);
|
||||
// cerca il comune
|
||||
comuni.zero();
|
||||
comuni.put("COM", ts.get());
|
||||
// se esiste
|
||||
if (comuni.read(_isequal, _lock) == NOERR)
|
||||
{
|
||||
// aggiorna il codice concessione sul comune in oggetto
|
||||
comuni.put("UFFCONC", ts.get());
|
||||
comuni.rewrite();
|
||||
#ifdef DBG
|
||||
uffconc.zero();
|
||||
uffconc.put("CODTAB", comuni.get("UFFCONC"));
|
||||
if (uffconc.read() != NOERR)
|
||||
concerr.add(comuni.get("UFFCONC"));
|
||||
#endif
|
||||
}
|
||||
// altrimenti sblocca il record e conteggia l' errore
|
||||
else
|
||||
{
|
||||
comuni.read(_iscurr, _unlock);
|
||||
nerr++;
|
||||
}
|
||||
}
|
||||
// segnala gli errori
|
||||
if (nerr)
|
||||
error_box("La conversione dei comuni non ne ha trovati %d", nerr);
|
||||
#ifdef DBG
|
||||
if (concerr.not_empty())
|
||||
error_box("Le seguenti concessioni sono inesistenti %s", (const char *) concerr);
|
||||
#endif
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Programma di conversione archivi speciale
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -551,7 +686,7 @@ int main(int argc,char** argv)
|
||||
{
|
||||
const int r = (argc > 1) ? atoi(argv[1]) : 0;
|
||||
|
||||
if (r < 0 || r > 5)
|
||||
if (r < 0 || r > 6)
|
||||
{
|
||||
error_box(usage);
|
||||
return 100;
|
||||
|
@ -10,5 +10,7 @@ ACNV(5)=bacnv 2
|
||||
ACNV(15)=bacnv 3
|
||||
[199505]
|
||||
ACNV(5)=bacnv 5
|
||||
[199506]
|
||||
ACNV(5)=bacnv 6
|
||||
[EOF]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user