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 <isam.h>
|
||||||
#include <mailbox.h>
|
#include <mailbox.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <prefix.h>
|
#include <prefix.h>
|
||||||
|
#include <scanner.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
@ -19,7 +20,7 @@
|
|||||||
|
|
||||||
#include <rmov.h>
|
#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
|
// Applicazione di conversione archivi XBase, valida per tutti e 4 i tipi di DLL
|
||||||
@ -159,6 +160,7 @@ public:
|
|||||||
void patch_com(void);
|
void patch_com(void);
|
||||||
void zero_770(void);
|
void zero_770(void);
|
||||||
void convert_patty(void);
|
void convert_patty(void);
|
||||||
|
void convert_codconc(void);
|
||||||
|
|
||||||
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
||||||
};
|
};
|
||||||
@ -233,7 +235,10 @@ bool TConversione_archivi::menu(MENU_TAG)
|
|||||||
if (_codditta == 0)
|
if (_codditta == 0)
|
||||||
zero_770();
|
zero_770();
|
||||||
case 5:
|
case 5:
|
||||||
convert_patty();
|
convert_patty();
|
||||||
|
case 6:
|
||||||
|
if (_codditta == 0)
|
||||||
|
convert_codconc();
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -531,11 +536,11 @@ if (d.eod() > 0L)
|
|||||||
|
|
||||||
}
|
}
|
||||||
if (_codditta == 0)
|
if (_codditta == 0)
|
||||||
{
|
{
|
||||||
TSystemisamfile f(LF_FORM);
|
|
||||||
TDir d;
|
TDir d;
|
||||||
|
TSystemisamfile f(LF_FORM);
|
||||||
TFilename lf;
|
TFilename lf;
|
||||||
|
|
||||||
d.get(LF_FORM);
|
d.get(LF_FORM);
|
||||||
lf.format("%sstd/lf0054.txt", __ptprf);
|
lf.format("%sstd/lf0054.txt", __ptprf);
|
||||||
if (fexist(lf) && fexist(d.filename()))
|
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
|
// Programma di conversione archivi speciale
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -551,7 +686,7 @@ int main(int argc,char** argv)
|
|||||||
{
|
{
|
||||||
const int r = (argc > 1) ? atoi(argv[1]) : 0;
|
const int r = (argc > 1) ? atoi(argv[1]) : 0;
|
||||||
|
|
||||||
if (r < 0 || r > 5)
|
if (r < 0 || r > 6)
|
||||||
{
|
{
|
||||||
error_box(usage);
|
error_box(usage);
|
||||||
return 100;
|
return 100;
|
||||||
|
@ -10,5 +10,7 @@ ACNV(5)=bacnv 2
|
|||||||
ACNV(15)=bacnv 3
|
ACNV(15)=bacnv 3
|
||||||
[199505]
|
[199505]
|
||||||
ACNV(5)=bacnv 5
|
ACNV(5)=bacnv 5
|
||||||
|
[199506]
|
||||||
|
ACNV(5)=bacnv 6
|
||||||
[EOF]
|
[EOF]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user