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 <config.h>
|
||||
#include <currency.h>
|
||||
#include <date.h>
|
||||
#include <execp.h>
|
||||
#include <recarray.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
|
||||
@ -12,9 +7,12 @@
|
||||
#include <cfven.h>
|
||||
#include <mov.h>
|
||||
|
||||
#include "..\ce\collces.h"
|
||||
#include "..\ve\velib.h"
|
||||
#include "..\cg\cg2103.h"
|
||||
#include "../ce/collces.h"
|
||||
#include "../ve/velib.h"
|
||||
#include "../cg/cg2103.h"
|
||||
|
||||
#include "../ca/movana.h"
|
||||
#include "../ca/rmovana.h"
|
||||
|
||||
class TIni2Sql: public TSkeleton_application
|
||||
{
|
||||
@ -32,7 +30,7 @@ class TIni2Sql: public TSkeleton_application
|
||||
TRiga_documento* _rigadoc;
|
||||
TFilename _inputfilename;
|
||||
TBill _conto;
|
||||
TToken_string* _search_seq;
|
||||
TToken_string _search_seq;
|
||||
// Sequenza di ricerca del conto costo/ricavo la correttezza dell'ordinamento
|
||||
// va controllata nel programma di modifica parametri:
|
||||
// "" = fine ordinamento
|
||||
@ -82,7 +80,7 @@ bool TIni2Sql::create()
|
||||
{
|
||||
if (argc() > 1)
|
||||
{
|
||||
_inputfilename = argv()[1];
|
||||
_inputfilename = argv(1);
|
||||
if (_inputfilename[0] == '/' || _inputfilename[0] == '-')
|
||||
_inputfilename.ltrim(2);
|
||||
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
|
||||
{
|
||||
TToken_string key;
|
||||
key.format("%d|%d", gr, co);
|
||||
TString8 key; key.format("%d|%d", gr, co);
|
||||
const int indbil = atoi(cache().get(LF_PCON, key, "INDBIL"));
|
||||
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 s = false;
|
||||
if (_caus != NULL)
|
||||
if (*_caus->codice() > ' ') // esiste la causale
|
||||
{
|
||||
const char sez = _caus->sezione_clifo();
|
||||
const TipoIVA iva = _caus->iva();
|
||||
const bool vendite = iva == nessuna_iva ? _doc->tipocf() == 'C' : iva == iva_vendite;
|
||||
s = vendite ^ (sez == 'D');
|
||||
}
|
||||
if (_caus != NULL && *_caus->codice() > ' ') // esiste la causale
|
||||
{
|
||||
const char sez = _caus->sezione_clifo();
|
||||
const TipoIVA iva = _caus->iva();
|
||||
const bool vendite = iva == nessuna_iva ? _doc->tipocf() == 'C' : iva == iva_vendite;
|
||||
s = vendite ^ (sez == 'D');
|
||||
}
|
||||
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)
|
||||
{
|
||||
TConfig conf(CONFIG_DITTA, "ve");
|
||||
_search_seq = new TToken_string((const char*)conf.get("RICERCACR","ve"));
|
||||
// costruisce la stringa che controlla la ricerca del conto costo/ricavo
|
||||
// Attenzione! non esegue alcun controllo di consistenza sulla corretta sequenza
|
||||
// presuppone che il programma di configurazione abbia generato correttamente
|
||||
// il tutto.
|
||||
if (_search_seq->items() == 0)
|
||||
{
|
||||
error_box("Non e' abilitata alcuna ricerca per il conto di costo/ricavo in configurazione.");
|
||||
return FALSE;
|
||||
}
|
||||
const int items = _search_seq->items();
|
||||
if (_search_seq.empty())
|
||||
{
|
||||
TConfig conf(CONFIG_DITTA, "ve");
|
||||
_search_seq = conf.get("RICERCACR");
|
||||
// costruisce la stringa che controlla la ricerca del conto costo/ricavo
|
||||
// Attenzione! non esegue alcun controllo di consistenza sulla corretta sequenza
|
||||
// presuppone che il programma di configurazione abbia generato correttamente
|
||||
// il tutto.
|
||||
if (_search_seq.items() == 0)
|
||||
{
|
||||
error_box("Non e' abilitata alcuna ricerca per il conto di costo/ricavo in configurazione.");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
const int items = _search_seq.items();
|
||||
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";
|
||||
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
|
||||
for (int i=0;i<items;i++)
|
||||
{
|
||||
tok = _search_seq->get(i);
|
||||
tok = _search_seq.get(i);
|
||||
if (tok == "CF")
|
||||
{
|
||||
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
|
||||
for (int i=0;i<items;i++)
|
||||
{
|
||||
tok = _search_seq->get(i);
|
||||
tok = _search_seq.get(i);
|
||||
if (tok == "CF")
|
||||
{
|
||||
if (skip_clifo) continue;
|
||||
@ -877,10 +876,13 @@ void TIni2Sql::write_sqlinsert()
|
||||
_firm = _inputfile->get_int("Firm", "Transaction");
|
||||
TString16 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())
|
||||
{
|
||||
set_firm(_firm);
|
||||
_search_seq.cut(0); // Forzo ricostruzione della sequenza
|
||||
}
|
||||
FOR_EACH_ARRAY_ROW(lp, p, paragrafo)
|
||||
{
|
||||
if (*paragrafo == "Transaction")
|
||||
@ -918,17 +920,9 @@ void TIni2Sql::write_sqlinsert()
|
||||
}
|
||||
if (strpar == "108")
|
||||
{
|
||||
/* Come NON si deve fare: leggere e poi cancellare
|
||||
TString gruppo(_inputfile->get("CODCONTO"));
|
||||
const int codgruppo = atoi(gruppo.left(3));
|
||||
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');
|
||||
TString16 gruppo = _inputfile->get("CODCONTO");
|
||||
gruppo.cut(3);
|
||||
gruppo.format("%d", atoi(gruppo));
|
||||
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 )
|
||||
@ -1025,14 +1019,10 @@ void TIni2Sql::write_sqlinsert()
|
||||
colonne.insert(" ("); colonne << ") ";
|
||||
valori.insert(" VALUES ("); valori << ") ";
|
||||
|
||||
_sqlfile->write(insert, insert.len());
|
||||
*_sqlfile << endl;
|
||||
_sqlfile->write(colonne, colonne.len());
|
||||
*_sqlfile << endl;
|
||||
_sqlfile->write(valori, valori.len());
|
||||
*_sqlfile << endl;
|
||||
_sqlfile->put('æ');
|
||||
*_sqlfile << endl;
|
||||
*_sqlfile << insert << endl;
|
||||
*_sqlfile << colonne << endl;
|
||||
*_sqlfile << valori << endl;
|
||||
*_sqlfile << ';' << endl;
|
||||
}
|
||||
}
|
||||
if (!almenounariga)
|
||||
@ -1040,7 +1030,6 @@ void TIni2Sql::write_sqlinsert()
|
||||
if (_sqlfile != NULL)
|
||||
delete _sqlfile;
|
||||
_sqlfile = new ofstream("crpa.sql");
|
||||
_sqlfile->write("",0);
|
||||
write_sqldelete();
|
||||
}
|
||||
}
|
||||
@ -1090,12 +1079,8 @@ void TIni2Sql::write_sqldelete()
|
||||
if (condizione.not_empty())
|
||||
{
|
||||
condizione.insert(" WHERE ("); condizione << ") ";
|
||||
|
||||
_sqlfile->write(cancella, cancella.len());
|
||||
_sqlfile->write(condizione, condizione.len());
|
||||
*_sqlfile << endl;
|
||||
_sqlfile->put('æ');
|
||||
*_sqlfile << endl;
|
||||
*_sqlfile << cancella << condizione << endl;
|
||||
*_sqlfile << ';' << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1105,7 +1090,6 @@ void TIni2Sql::write_sqldelete()
|
||||
void TIni2Sql::main_loop()
|
||||
{
|
||||
_sqlfile = new ofstream("crpa.sql");
|
||||
_sqlfile->write("",0);
|
||||
|
||||
TString16 action = _inputfile->get("Action", "Transaction");
|
||||
action.upper();
|
||||
|
Loading…
x
Reference in New Issue
Block a user