Patch level : 10.0 538
Files correlati : tc0.exe Ricompilazione Demo : [ ] programma per l'importazione del piano dei conti causali e codici iva git-svn-id: svn://10.65.10.50/trunk@19702 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c827bf892c
commit
100e004b48
105
tc/tc0600.cpp
105
tc/tc0600.cpp
@ -9,10 +9,7 @@
|
||||
|
||||
#include "tc0.h"
|
||||
#include "tc0600a.h"
|
||||
|
||||
#include "pconti.h"
|
||||
#include "causali.h"
|
||||
#include "tabutil.h"
|
||||
#include "tabmod.h"
|
||||
|
||||
///////////////////////////////////////////////
|
||||
//// CLASSI DERIVATE PER IMPORTAZIONE DATI ////
|
||||
@ -151,54 +148,35 @@ TDocTS& app() { return (TDocTS&) main_app(); }
|
||||
void TDocTS::upload_pconti (const TFilename& file, TLog_report& log) const
|
||||
{
|
||||
TImporta_pconto_recordset s(file); //crea un recordset con struttura predefinita come indicato nella classe opportuna
|
||||
|
||||
TLocalisamfile pconti(LF_PCON); //instanzio l'ISAM file che lavota sulla tabella PCON
|
||||
|
||||
TModule_table pconti("TCO");
|
||||
TProgind pi(s.items(),"Importazione Piano dei Conti in Corso...",true,true);
|
||||
|
||||
for (bool ok=s.move_first();ok;ok=s.move_next())
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
//salto le righe di testata del file
|
||||
//per farlo leggo il gruppo e controllo che sia numerico
|
||||
TString dconto = s.get(1).as_string();
|
||||
if (!isdigit(dconto[1]))
|
||||
if (dconto.blank() || !isdigit(dconto[1]))
|
||||
continue;
|
||||
|
||||
TString4 gr = dconto.mid(0,2); //leggo il gruppo
|
||||
TString4 co = dconto.mid(3,2); //leggo il conto
|
||||
TString4 sc = dconto.mid(6,3); //leggo il sottoconto
|
||||
TString desc = s.get(2).as_string(); //leggo la descrizione
|
||||
|
||||
if (co == " " || co == "**")
|
||||
{
|
||||
co = "00";
|
||||
atoi(co);
|
||||
}
|
||||
|
||||
if (sc == " " || sc == "***")
|
||||
{
|
||||
sc = "000";
|
||||
atoi(sc);
|
||||
}
|
||||
|
||||
pconti.zero();
|
||||
|
||||
pconti.put(PCN_GRUPPO,gr); //put del gruppo
|
||||
pconti.put(PCN_CONTO,co); //put del conto
|
||||
pconti.put(PCN_SOTTOCONTO,sc); //put del sottoconto
|
||||
pconti.put(PCN_DESCR,desc); //put della descrizione
|
||||
TString4 gr = dconto.left(2); //leggo il gruppo
|
||||
TString4 co = dconto.mid(3,2); //leggo il conto
|
||||
TString4 sc = dconto.mid(6,3); //leggo il sottoconto
|
||||
TString conto = gr; //leggo il gruppo
|
||||
TString desc = s.get(2).as_string(); //leggo la descrizione
|
||||
|
||||
TString str = "Il Conto ";
|
||||
str << gr << " " << " " << co << " " << sc;
|
||||
|
||||
|
||||
//pconti.put(PCN_???,s.get("TCONTO").as_string());
|
||||
conto << ((co.blank() || co == "**") ? "00" : co);
|
||||
conto << ((sc.blank() || sc == "***") ? "000" : sc);
|
||||
pconti.put("CODTAB", conto); //put del gruppo
|
||||
pconti.put("S0", desc); //put del conto
|
||||
|
||||
int err = pconti.write_rewrite(); //Tenta di aggiungere un record ma se esiste gia' lo aggiorna
|
||||
TString str = "Il Conto ";
|
||||
|
||||
str << conto;
|
||||
if (err == NOERR)
|
||||
{
|
||||
str << " è stato inserito";
|
||||
@ -213,53 +191,42 @@ void TDocTS::upload_pconti (const TFilename& file, TLog_report& log) const
|
||||
return;
|
||||
}
|
||||
|
||||
//funzione che importa il piano dei conto sulla tabella corretta
|
||||
void TDocTS::upload_causali(const TFilename& file, TLog_report& log) const
|
||||
{
|
||||
TScanner s(file); //legge il file che gli passo riga per riga
|
||||
TString curr = s.line();
|
||||
|
||||
TLocalisamfile causa(LF_CAUSALI); //instanzio l'ISAM file che lavota sulla tabella CAUS
|
||||
|
||||
TModule_table causa("TCA");
|
||||
TProgind pi(fsize(file),"Importazione Causali in Corso...",true,true);
|
||||
|
||||
while (s.ok())
|
||||
{
|
||||
if (!pi.addstatus(s.tellg()))
|
||||
break;
|
||||
|
||||
causa.zero();
|
||||
curr = s.line();
|
||||
|
||||
TString8 cod = curr.mid(1,6);
|
||||
cod.trim();
|
||||
TString desc = curr.mid(7,16);
|
||||
|
||||
//salto le righe di testata del file
|
||||
if (!real::is_natural(cod))
|
||||
cod.trim();
|
||||
if (cod.blank() || !real::is_natural(cod))
|
||||
continue;
|
||||
|
||||
cod.lpad(3, '0');
|
||||
if (cod.len() > 3)
|
||||
{
|
||||
TString errore = "ERRORE:";
|
||||
|
||||
errore <<" la causale con codice " << cod << " non può essere inserita (codice max 3 caratteri)";
|
||||
log.log(2,errore);
|
||||
}
|
||||
|
||||
//il codice causale deve essere sempre di tre caratteri zero-filled
|
||||
while (cod.len() < 3)
|
||||
{
|
||||
cod.insert("0",0);
|
||||
}
|
||||
|
||||
causa.zero();
|
||||
|
||||
causa.put(CAU_CODCAUS,cod);
|
||||
causa.put(CAU_DESCR,desc);
|
||||
causa.put("CODTAB",cod);
|
||||
causa.put("S0",desc);
|
||||
|
||||
int err = causa.write_rewrite(); //Tenta di aggiungere un record ma se esiste gia' lo aggiorna
|
||||
|
||||
TString str = "La Causale con codice ";
|
||||
str << cod;
|
||||
|
||||
str << cod;
|
||||
if (err == NOERR)
|
||||
{
|
||||
str << " è stata inserita";
|
||||
@ -280,44 +247,40 @@ void TDocTS::upload_causali(const TFilename& file, TLog_report& log) const
|
||||
void TDocTS::upload_codiva(const TFilename& file, TLog_report& log) const
|
||||
{
|
||||
TScanner s(file); //crea un recordset con struttura predefinita come indicato nella classe opportuna
|
||||
|
||||
TTable iva("%IVA"); //instanzio l'ISAM file che lavota sulla tabella IVA
|
||||
|
||||
TModule_table iva("IVA"); //instanzio l'ISAM file che lavota sulla tabella IVA
|
||||
TProgind pi(fsize(file),"Importazione Dati IVA in Corso...",true,true);
|
||||
|
||||
while(s.ok())
|
||||
{
|
||||
if (!pi.addstatus(s.tellg()))
|
||||
break;
|
||||
|
||||
//salto le righe di testata del file
|
||||
iva.zero();
|
||||
|
||||
TString curr = s.line();
|
||||
TString8 cod = curr.mid(1,8);
|
||||
cod.trim();
|
||||
TString desc = curr.mid(9,20);
|
||||
TString desc = curr.mid(9,18);
|
||||
|
||||
//salto le righe di testata del file
|
||||
if (!real::is_natural(cod))
|
||||
cod.trim();
|
||||
if (cod.blank() || !real::is_natural(cod))
|
||||
continue;
|
||||
|
||||
cod.lpad(4, '0');
|
||||
if (cod.len() > 4)
|
||||
{
|
||||
TString errore = "ERRORE:";
|
||||
|
||||
errore <<" i dati IVA con codice " << cod << " non possono essere inseriti (codice max 4 caratteri)";
|
||||
log.log(2,errore);
|
||||
}
|
||||
|
||||
iva.zero();
|
||||
|
||||
iva.put("CODTAB",cod);
|
||||
iva.put("S0",desc);
|
||||
|
||||
int err = iva.write_rewrite(); //Tenta di aggiungere un record ma se esiste gia' lo aggiorna
|
||||
|
||||
TString str = "I dati IVA con codice ";
|
||||
|
||||
str << cod;
|
||||
|
||||
|
||||
if (err == NOERR)
|
||||
{
|
||||
str << " sono stati inseriti";
|
||||
@ -407,6 +370,6 @@ void TDocTS::main_loop()
|
||||
int tc0600 (int argc, char* argv[])
|
||||
{
|
||||
TDocTS main_app;
|
||||
main_app.run(argc, argv, TR("Importazione Clienti/Fornitori"));
|
||||
main_app.run(argc, argv, TR("Importazione Tabelle"));
|
||||
return true;
|
||||
}
|
||||
|
@ -967,7 +967,7 @@ void TTS_sender::add_datiiva(const TRecordset& mov)
|
||||
long codiva = cod2ricl("TSIVA", rmoviva.get(RMI_CODIVA));
|
||||
long codiva11 = 0L;
|
||||
//da modificare nella 3.1
|
||||
const bool indetraibile = rmoviva.get(RMI_TIPODET).as_int() > 0;
|
||||
const bool indetraibile = rmoviva.get(RMI_TIPODET).as_string().full();
|
||||
const TString4 tipocr = rmoviva.get(RMI_TIPOCR).as_string();
|
||||
const bool acqvent = _ventilazione && (imposta != ZERO) && tipocr == "1";
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user