Patch level : 4.0
Files correlati : crpa0 Ricompilazione Demo : [ ] Commento : Riscirtte in C++ le scritture su file di testo e sostituiti strani "quadrifogli" con ";" alla fine degli statement sql git-svn-id: svn://10.65.10.50/trunk@14244 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b1728505ea
commit
9552027b8a
108
crpa/crpa0.cpp
108
crpa/crpa0.cpp
@ -1,10 +1,5 @@
|
|||||||
#include <fstream.h>
|
|
||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <config.h>
|
|
||||||
#include <currency.h>
|
|
||||||
#include <date.h>
|
|
||||||
#include <execp.h>
|
#include <execp.h>
|
||||||
#include <recarray.h>
|
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
|
|
||||||
@ -12,9 +7,12 @@
|
|||||||
#include <cfven.h>
|
#include <cfven.h>
|
||||||
#include <mov.h>
|
#include <mov.h>
|
||||||
|
|
||||||
#include "..\ce\collces.h"
|
#include "../ce/collces.h"
|
||||||
#include "..\ve\velib.h"
|
#include "../ve/velib.h"
|
||||||
#include "..\cg\cg2103.h"
|
#include "../cg/cg2103.h"
|
||||||
|
|
||||||
|
#include "../ca/movana.h"
|
||||||
|
#include "../ca/rmovana.h"
|
||||||
|
|
||||||
class TIni2Sql: public TSkeleton_application
|
class TIni2Sql: public TSkeleton_application
|
||||||
{
|
{
|
||||||
@ -32,7 +30,7 @@ class TIni2Sql: public TSkeleton_application
|
|||||||
TRiga_documento* _rigadoc;
|
TRiga_documento* _rigadoc;
|
||||||
TFilename _inputfilename;
|
TFilename _inputfilename;
|
||||||
TBill _conto;
|
TBill _conto;
|
||||||
TToken_string* _search_seq;
|
TToken_string _search_seq;
|
||||||
// Sequenza di ricerca del conto costo/ricavo la correttezza dell'ordinamento
|
// Sequenza di ricerca del conto costo/ricavo la correttezza dell'ordinamento
|
||||||
// va controllata nel programma di modifica parametri:
|
// va controllata nel programma di modifica parametri:
|
||||||
// "" = fine ordinamento
|
// "" = fine ordinamento
|
||||||
@ -82,7 +80,7 @@ bool TIni2Sql::create()
|
|||||||
{
|
{
|
||||||
if (argc() > 1)
|
if (argc() > 1)
|
||||||
{
|
{
|
||||||
_inputfilename = argv()[1];
|
_inputfilename = argv(1);
|
||||||
if (_inputfilename[0] == '/' || _inputfilename[0] == '-')
|
if (_inputfilename[0] == '/' || _inputfilename[0] == '-')
|
||||||
_inputfilename.ltrim(2);
|
_inputfilename.ltrim(2);
|
||||||
if (_inputfilename.exist())
|
if (_inputfilename.exist())
|
||||||
@ -111,8 +109,7 @@ bool TIni2Sql::create()
|
|||||||
|
|
||||||
bool TIni2Sql::test_swap_conto(const int gr, const int co, const char sezione) const
|
bool TIni2Sql::test_swap_conto(const int gr, const int co, const char sezione) const
|
||||||
{
|
{
|
||||||
TToken_string key;
|
TString8 key; key.format("%d|%d", gr, co);
|
||||||
key.format("%d|%d", gr, co);
|
|
||||||
const int indbil = atoi(cache().get(LF_PCON, key, "INDBIL"));
|
const int indbil = atoi(cache().get(LF_PCON, key, "INDBIL"));
|
||||||
return ((indbil == 3) && (sezione == 'A')) || ((indbil == 4) && (sezione == 'D'));
|
return ((indbil == 3) && (sezione == 'A')) || ((indbil == 4) && (sezione == 'D'));
|
||||||
}
|
}
|
||||||
@ -120,14 +117,13 @@ bool TIni2Sql::test_swap_conto(const int gr, const int co, const char sezione) c
|
|||||||
bool TIni2Sql::test_swap() const
|
bool TIni2Sql::test_swap() const
|
||||||
{
|
{
|
||||||
bool s = false;
|
bool s = false;
|
||||||
if (_caus != NULL)
|
if (_caus != NULL && *_caus->codice() > ' ') // esiste la causale
|
||||||
if (*_caus->codice() > ' ') // esiste la causale
|
{
|
||||||
{
|
const char sez = _caus->sezione_clifo();
|
||||||
const char sez = _caus->sezione_clifo();
|
const TipoIVA iva = _caus->iva();
|
||||||
const TipoIVA iva = _caus->iva();
|
const bool vendite = iva == nessuna_iva ? _doc->tipocf() == 'C' : iva == iva_vendite;
|
||||||
const bool vendite = iva == nessuna_iva ? _doc->tipocf() == 'C' : iva == iva_vendite;
|
s = vendite ^ (sez == 'D');
|
||||||
s = vendite ^ (sez == 'D');
|
}
|
||||||
}
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,18 +237,21 @@ void TIni2Sql::leggidadoc(const TString& elabfield, TString& tmpstr)
|
|||||||
|
|
||||||
bool TIni2Sql::search_costo_ricavo(TBill& conto, const TRiga_documento& r)
|
bool TIni2Sql::search_costo_ricavo(TBill& conto, const TRiga_documento& r)
|
||||||
{
|
{
|
||||||
TConfig conf(CONFIG_DITTA, "ve");
|
if (_search_seq.empty())
|
||||||
_search_seq = new TToken_string((const char*)conf.get("RICERCACR","ve"));
|
{
|
||||||
// costruisce la stringa che controlla la ricerca del conto costo/ricavo
|
TConfig conf(CONFIG_DITTA, "ve");
|
||||||
// Attenzione! non esegue alcun controllo di consistenza sulla corretta sequenza
|
_search_seq = conf.get("RICERCACR");
|
||||||
// presuppone che il programma di configurazione abbia generato correttamente
|
// costruisce la stringa che controlla la ricerca del conto costo/ricavo
|
||||||
// il tutto.
|
// Attenzione! non esegue alcun controllo di consistenza sulla corretta sequenza
|
||||||
if (_search_seq->items() == 0)
|
// presuppone che il programma di configurazione abbia generato correttamente
|
||||||
{
|
// il tutto.
|
||||||
error_box("Non e' abilitata alcuna ricerca per il conto di costo/ricavo in configurazione.");
|
if (_search_seq.items() == 0)
|
||||||
return FALSE;
|
{
|
||||||
}
|
error_box("Non e' abilitata alcuna ricerca per il conto di costo/ricavo in configurazione.");
|
||||||
const int items = _search_seq->items();
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const int items = _search_seq.items();
|
||||||
TLocalisamfile& cli_file = _clifo->lfile(); // YES, arriva qui dentro quando la relazione e' gia' posizionata
|
TLocalisamfile& cli_file = _clifo->lfile(); // YES, arriva qui dentro quando la relazione e' gia' posizionata
|
||||||
const bool is_cli = cli_file.get(CLI_TIPOCF) == "C";
|
const bool is_cli = cli_file.get(CLI_TIPOCF) == "C";
|
||||||
bool skip_art_related = FALSE;
|
bool skip_art_related = FALSE;
|
||||||
@ -296,7 +295,7 @@ bool TIni2Sql::search_costo_ricavo(TBill& conto, const TRiga_documento& r)
|
|||||||
// Scorre la stringa di ricerca
|
// Scorre la stringa di ricerca
|
||||||
for (int i=0;i<items;i++)
|
for (int i=0;i<items;i++)
|
||||||
{
|
{
|
||||||
tok = _search_seq->get(i);
|
tok = _search_seq.get(i);
|
||||||
if (tok == "CF")
|
if (tok == "CF")
|
||||||
{
|
{
|
||||||
if (skip_clifo) continue;
|
if (skip_clifo) continue;
|
||||||
@ -407,7 +406,7 @@ bool TIni2Sql::search_costo_ricavo(TBill& conto, const TRiga_documento& r)
|
|||||||
// Scorre la stringa di ricerca ma solo per causale o CLI/FO
|
// Scorre la stringa di ricerca ma solo per causale o CLI/FO
|
||||||
for (int i=0;i<items;i++)
|
for (int i=0;i<items;i++)
|
||||||
{
|
{
|
||||||
tok = _search_seq->get(i);
|
tok = _search_seq.get(i);
|
||||||
if (tok == "CF")
|
if (tok == "CF")
|
||||||
{
|
{
|
||||||
if (skip_clifo) continue;
|
if (skip_clifo) continue;
|
||||||
@ -877,10 +876,13 @@ void TIni2Sql::write_sqlinsert()
|
|||||||
_firm = _inputfile->get_int("Firm", "Transaction");
|
_firm = _inputfile->get_int("Firm", "Transaction");
|
||||||
TString16 firm;
|
TString16 firm;
|
||||||
firm.format("%ld", _firm);
|
firm.format("%ld", _firm);
|
||||||
if (_configfile->get((const char*)firm, "Ditte")[0] == 'S')
|
if (_configfile->get(firm, "Ditte")[0] == 'S')
|
||||||
{
|
{
|
||||||
if (_firm != get_firm())
|
if (_firm != get_firm())
|
||||||
|
{
|
||||||
set_firm(_firm);
|
set_firm(_firm);
|
||||||
|
_search_seq.cut(0); // Forzo ricostruzione della sequenza
|
||||||
|
}
|
||||||
FOR_EACH_ARRAY_ROW(lp, p, paragrafo)
|
FOR_EACH_ARRAY_ROW(lp, p, paragrafo)
|
||||||
{
|
{
|
||||||
if (*paragrafo == "Transaction")
|
if (*paragrafo == "Transaction")
|
||||||
@ -918,17 +920,9 @@ void TIni2Sql::write_sqlinsert()
|
|||||||
}
|
}
|
||||||
if (strpar == "108")
|
if (strpar == "108")
|
||||||
{
|
{
|
||||||
/* Come NON si deve fare: leggere e poi cancellare
|
TString16 gruppo = _inputfile->get("CODCONTO");
|
||||||
TString gruppo(_inputfile->get("CODCONTO"));
|
gruppo.cut(3);
|
||||||
const int codgruppo = atoi(gruppo.left(3));
|
gruppo.format("%d", atoi(gruppo));
|
||||||
gruppo.format("%ld", codgruppo);
|
|
||||||
ok = _configfile->get_bool(gruppo, "Gruppi");
|
|
||||||
*/
|
|
||||||
|
|
||||||
// E' meglio lavorare localmente senza TString nello heap o temporanee (left).
|
|
||||||
// In questo modo non ho nessuna TString, left(), atoi, format!
|
|
||||||
TString16 gruppo = _inputfile->get("CODCONTO");
|
|
||||||
gruppo.cut(3); gruppo.ltrim('0');
|
|
||||||
ok = _configfile->get_bool(gruppo, "Gruppi");
|
ok = _configfile->get_bool(gruppo, "Gruppi");
|
||||||
}
|
}
|
||||||
// vecchia condizione: se riga documento deve avere codice iva oppure essere tipo riga spesa e avere gruppo 4 o 5 (andare su anamag con codart o )
|
// vecchia condizione: se riga documento deve avere codice iva oppure essere tipo riga spesa e avere gruppo 4 o 5 (andare su anamag con codart o )
|
||||||
@ -1025,14 +1019,10 @@ void TIni2Sql::write_sqlinsert()
|
|||||||
colonne.insert(" ("); colonne << ") ";
|
colonne.insert(" ("); colonne << ") ";
|
||||||
valori.insert(" VALUES ("); valori << ") ";
|
valori.insert(" VALUES ("); valori << ") ";
|
||||||
|
|
||||||
_sqlfile->write(insert, insert.len());
|
*_sqlfile << insert << endl;
|
||||||
*_sqlfile << endl;
|
*_sqlfile << colonne << endl;
|
||||||
_sqlfile->write(colonne, colonne.len());
|
*_sqlfile << valori << endl;
|
||||||
*_sqlfile << endl;
|
*_sqlfile << ';' << endl;
|
||||||
_sqlfile->write(valori, valori.len());
|
|
||||||
*_sqlfile << endl;
|
|
||||||
_sqlfile->put('æ');
|
|
||||||
*_sqlfile << endl;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!almenounariga)
|
if (!almenounariga)
|
||||||
@ -1040,7 +1030,6 @@ void TIni2Sql::write_sqlinsert()
|
|||||||
if (_sqlfile != NULL)
|
if (_sqlfile != NULL)
|
||||||
delete _sqlfile;
|
delete _sqlfile;
|
||||||
_sqlfile = new ofstream("crpa.sql");
|
_sqlfile = new ofstream("crpa.sql");
|
||||||
_sqlfile->write("",0);
|
|
||||||
write_sqldelete();
|
write_sqldelete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1090,12 +1079,8 @@ void TIni2Sql::write_sqldelete()
|
|||||||
if (condizione.not_empty())
|
if (condizione.not_empty())
|
||||||
{
|
{
|
||||||
condizione.insert(" WHERE ("); condizione << ") ";
|
condizione.insert(" WHERE ("); condizione << ") ";
|
||||||
|
*_sqlfile << cancella << condizione << endl;
|
||||||
_sqlfile->write(cancella, cancella.len());
|
*_sqlfile << ';' << endl;
|
||||||
_sqlfile->write(condizione, condizione.len());
|
|
||||||
*_sqlfile << endl;
|
|
||||||
_sqlfile->put('æ');
|
|
||||||
*_sqlfile << endl;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1105,7 +1090,6 @@ void TIni2Sql::write_sqldelete()
|
|||||||
void TIni2Sql::main_loop()
|
void TIni2Sql::main_loop()
|
||||||
{
|
{
|
||||||
_sqlfile = new ofstream("crpa.sql");
|
_sqlfile = new ofstream("crpa.sql");
|
||||||
_sqlfile->write("",0);
|
|
||||||
|
|
||||||
TString16 action = _inputfile->get("Action", "Transaction");
|
TString16 action = _inputfile->get("Action", "Transaction");
|
||||||
action.upper();
|
action.upper();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user