Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/branches/R_10_00@21342 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2010-12-20 15:03:46 +00:00
parent 994ab2d7cf
commit 6d043f81d8
2 changed files with 107 additions and 43 deletions

View File

@ -476,7 +476,7 @@ DATAPRZSTO =
ANNOES = Esercizio ANNOES = Esercizio
NUMREG = NUMREG =
DATAREG = DataMovimento DATAREG = DataMovimento
DATACOMP = DataCompetenza DATACOMP =
DATADOC = DataDocumento DATADOC = DataDocumento
DATA74TER = DATA74TER =
MESELIQ = MESELIQ =
@ -544,10 +544,10 @@ CODCMS =
FASCMS = FASCMS =
[RMOVIVA] [RMOVIVA]
ANNOES = ANNOES = Anno
NUMREG = NUMREG =
NUMRIG = NUMRIG =
CODIVA = CODIVA = IdIva
IMPONIBILE= IMPONIBILE=
IMPOSTA = IMPOSTA =
TIPODET = TIPODET =

View File

@ -30,22 +30,95 @@ class THardy_movimenti : public THardy_transfer
long _kmovcont; long _kmovcont;
protected: protected:
bool trasferisci_righe(); bool trasferisci_righe();
bool is_mov_iva(); bool trasferisci_righeiva();
public: public:
virtual bool trasferisci(); virtual bool trasferisci();
THardy_movimenti(const int anno, const TDate dadata, const TDate adata); THardy_movimenti(const int anno, const TDate dadata, const TDate adata);
}; };
bool THardy_movimenti::is_mov_iva() bool THardy_movimenti::trasferisci_righeiva()
{ {
TString query_righe; TString_array lista_campi_righeiva;
query_righe << query_header(); TConfig& ini = config();
query_righe << "SELECT * " ini.list_variables(lista_campi_righeiva, true, "RMOVIVA", true);
"FROM dbo.MovIvaT" TString query;
query << query_header();
query << "SELECT * "
"FROM dbo.MovIvaT "
"WHERE KMovconT="; "WHERE KMovconT=";
query_righe << _kmovcont; query << _kmovcont;
TODBC_recordset recset_righe(query_righe); TODBC_recordset recset(query);
bool is_iva = (recset_righe.items() > 0); bool is_iva = (recset.items() > 0);
if (is_iva)
{
bool ok=recset.move_first();
if (ok)
{
// aggiorna_testata movimento già scritta su ini con i nuovi dati di testata
}
// aggiungo le righe iva
long kregivat = recset.get("KRegivaT").as_int();
TString query_righe;
query_righe << query_header();
query_righe << "SELECT * "
"FROM dbo.MovIva "
"WHERE KRegivaT=";
query_righe << kregivat;
TODBC_recordset recset_righe(query_righe);
TString paragraph;
int nrigac = 1;
for (bool ok=recset_righe.move_first();ok;ok=recset_righe.move_next())
{
paragraph.format("%d,%d",LF_RMOVIVA,nrigac++);
_conf->set_paragraph(paragraph);
aggiorna_ini(*_conf, lista_campi_righeiva);
// calcolo dei campi non importabili direttamente
TString4 sezione = "D";
TImporto imponibile(sezione[0], recset_righe.get("Imponibile").as_real());
TImporto imposta(sezione[0], recset_righe.get("Imposta").as_real());
_conf->set(RMI_IMPONIBILE, imponibile.valore().string(0,2)) ;
_conf->set(RMI_IMPOSTA, imposta.valore().string(0,2));
const TString& key = recset_righe.get("IdConto").as_string();
TString4 tipoc = recset_righe.get("IdContoTp").as_string();
const char tipocc = tipoc[0];
int gr, co;
long so;
switch (tipocc)
{
case 'S':
{
tipoc = " ";
gr = atoi(key.mid(1,2));
co = atoi(key.mid(3,2));
so = atoi(key.mid(5,3));
}
break;
case 'C':
{
tipoc = "C";
gr = ini.get_int("CLI_GRUPPO", "Mastri");
co = ini.get_int("CLI_CONTO", "Mastri");
so = hd_key2cli(key);
}
break;
case 'F':
{
tipoc = "F";
gr = ini.get_int("FOR_GRUPPO", "Mastri");
co = ini.get_int("FOR_CONTO", "Mastri");
so = hd_key2forn(key);
}
break;
default:
break;
}
_conf->set(RMI_TIPOC, tipoc);
_conf->set(RMI_GRUPPO, gr);
_conf->set(RMI_CONTO, co);
_conf->set(RMI_SOTTOCONTO, so);
}
}
return is_iva; return is_iva;
} }
@ -64,7 +137,6 @@ bool THardy_movimenti::trasferisci_righe()
TODBC_recordset recset_righe(query_righe); TODBC_recordset recset_righe(query_righe);
TString paragraph; TString paragraph;
int nrigac = 1; int nrigac = 1;
int nrigai = 1;
for (bool ok=recset_righe.move_first();ok;ok=recset_righe.move_next()) for (bool ok=recset_righe.move_first();ok;ok=recset_righe.move_next())
{ {
paragraph.format("%d,%d",LF_RMOV,nrigac++); paragraph.format("%d,%d",LF_RMOV,nrigac++);
@ -78,7 +150,7 @@ bool THardy_movimenti::trasferisci_righe()
if (imp_dare.is_zero()) if (imp_dare.is_zero())
sezione = "A"; sezione = "A";
_conf->set(RMV_SEZIONE, sezione); _conf->set(RMV_SEZIONE, sezione);
_conf->set(RMV_IMPORTO, (imp_avere.is_zero() ? imp_dare.valore().stringa(0,2) : imp_avere.valore().stringa(0,2))); _conf->set(RMV_IMPORTO, (imp_avere.is_zero() ? imp_dare.valore().string(0,2) : imp_avere.valore().string(0,2)));
const TString& key = recset_righe.get("IdConto").as_string(); const TString& key = recset_righe.get("IdConto").as_string();
TString4 tipoc = recset_righe.get("IdContoTp").as_string(); TString4 tipoc = recset_righe.get("IdContoTp").as_string();
const char tipocc = tipoc[0]; const char tipocc = tipoc[0];
@ -161,35 +233,27 @@ bool THardy_movimenti::trasferisci()
while (++hi) while (++hi)
{ {
_kmovcont = recset.get("KMovconT").as_int(); _kmovcont = recset.get("KMovconT").as_int();
if (is_mov_iva()) if (_conf != NULL)
{ delete _conf;
TString msg; _conf = NULL;
msg << TR("Movimento IVA ") << _kmovcont << " non generato"; TFilename temp(outdir);
log(msg); temp.add(format("ha%06ld", ntran++));
} temp.ext("ini");
else if (temp.exist())
{ temp.fremove();
if (_conf != NULL) _conf = new TConfig(temp);
delete _conf; _conf->set_paragraph("Transaction");
_conf = NULL; _conf->set("Action","INSERT");
TFilename temp(outdir); _conf->set("Mode", "AUTO");
temp.add(format("ha%06ld", ntran++)); paragraph.format("%d",LF_MOV);
temp.ext("ini"); _conf->set_paragraph(paragraph); // testata movimento
if (temp.exist()) aggiorna_ini(*_conf, lista_campi);
temp.fremove(); // righe movimento
_conf = new TConfig(temp); trasferisci_righe();
_conf->set_paragraph("Transaction"); bool iva = trasferisci_righeiva();
_conf->set("Action","INSERT"); TString msg;
_conf->set("Mode", "AUTO"); msg << (iva ? TR("Movimento contabile "): TR("Movimento iva ")) << _kmovcont << " generato nel file " << temp;
paragraph.format("%d",LF_MOV); log(msg);
_conf->set_paragraph(paragraph); // testata movimento
aggiorna_ini(*_conf, lista_campi);
// righe movimento
trasferisci_righe();
TString msg;
msg << TR("Movimento contabile ") << _kmovcont << " generato nel file " << temp;
log(msg);
}
} }
if (_conf != NULL) if (_conf != NULL)
delete _conf; delete _conf;