Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21430 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3160be041e
commit
c4a1c0fa16
@ -482,7 +482,7 @@ DATACOMP =
|
||||
DATADOC = DataDocumento
|
||||
DATA74TER =
|
||||
MESELIQ =
|
||||
NUMDOC = NumDocumento
|
||||
NUMDOC = _STREXPR,LEFT(NumDocumento; 7)
|
||||
//TIPODOC = *** conversione FlTipoDocumento
|
||||
CODCAUS = IdCausale
|
||||
DESCR = Descrizione1
|
||||
@ -572,6 +572,7 @@ CLI_CONTO = 101
|
||||
FOR_GRUPPO = 5
|
||||
FOR_CONTO = 601
|
||||
GRUPPI_MOV = 7|8
|
||||
IVA_ESENTE = 999
|
||||
|
||||
// parametri generali della maschera (dns user password)
|
||||
[Main]
|
||||
|
103
ha/hacnv200.cpp
103
ha/hacnv200.cpp
@ -32,6 +32,7 @@ class THardy_movimenti : public THardy_transfer
|
||||
TArray* _righeiva; // array dele righe iva hardy
|
||||
TArray* _righecont; // array delle righe contabili hardy
|
||||
TAssoc_array* _ivaind; // array dei codici iva con % di indetraibilità
|
||||
TAssoc_array* _ivaoma; // array dei codici iva per gli omaggi
|
||||
|
||||
protected:
|
||||
bool scrivi_righe();
|
||||
@ -349,6 +350,7 @@ bool THardy_movimenti::scrivi_righe()
|
||||
TString paragraph;
|
||||
int nrigai = 1; // contatore righe iva
|
||||
TConfig& ini = config();
|
||||
TString8 ivaesente = ini.get("IVA_ESENTE", "Mastri");
|
||||
TToken_string gruppi_mov = ini.get("GRUPPI_MOV", "Mastri");
|
||||
// se è un movimento iva metto in atto il meccanismo di ricerca per assegnare le aliquote ai conti
|
||||
if (_righeiva->items()>0)
|
||||
@ -358,9 +360,10 @@ bool THardy_movimenti::scrivi_righe()
|
||||
{
|
||||
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(i);
|
||||
const char* gruppo = rec_rmov.get(RMV_GRUPPO);
|
||||
if (!gruppi_mov.find(gruppo))
|
||||
_righecont->destroy(i, true);
|
||||
if ((gruppi_mov.find(gruppo))<0)
|
||||
_righecont->destroy(i);
|
||||
}
|
||||
_righecont->pack();
|
||||
// secondo passo: per ogni riga iva cerco importo uguale in righe contabili,
|
||||
// se lo trovo assegno quel codice iva al conto contabile trovato e cancello la riga iva e la riga contabile
|
||||
for (int i=0;i<_righeiva->items();i++)
|
||||
@ -368,7 +371,6 @@ bool THardy_movimenti::scrivi_righe()
|
||||
TRectype& rec_rmoviva = *(TRectype*)_righeiva->objptr(i);
|
||||
real imponibile = get_imponibile(rec_rmoviva);
|
||||
|
||||
//real imponibile = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
||||
for (int j=0;j<_righecont->items();j++)
|
||||
{
|
||||
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(j);
|
||||
@ -382,44 +384,60 @@ bool THardy_movimenti::scrivi_righe()
|
||||
paragraph.format("%d,%d",LF_RMOVIVA, nrigai++);
|
||||
_conf->set_paragraph(paragraph); // riga iva
|
||||
rec2ini(rec_rmoviva);
|
||||
const char* codiva = rec_rmoviva.get(RMI_CODIVA);
|
||||
// se iva utilizzata per gli omaggi, devo fare un'altra riga iva identica ma con importo avere con iva esente
|
||||
if (_ivaoma->is_key(codiva))
|
||||
{
|
||||
paragraph.format("%d,%d",LF_RMOVIVA, nrigai++);
|
||||
_conf->set_paragraph(paragraph); // riga iva
|
||||
rec2ini(rec_rmoviva);
|
||||
// sostituisco codice iva e importo (-)
|
||||
importo = -importo;
|
||||
_conf->set(RMI_CODIVA, ivaesente); // codice iva esente per quadrare il movimento
|
||||
_conf->set(RMI_IMPONIBILE, importo.string(0,2)); // imponibile negativo
|
||||
_conf->set(RMI_IMPOSTA, ""); // imposta zero
|
||||
}
|
||||
_righecont->destroy(j, true);
|
||||
_righeiva->destroy(i, true);
|
||||
i = _righeiva->items();
|
||||
j = _righecont->items();
|
||||
// _righeiva->destroy(i);
|
||||
rec_rmoviva.zero();
|
||||
}
|
||||
}
|
||||
}
|
||||
_righecont->pack();
|
||||
// terzo passo: per ogni riga iva rimasta distribuisco importo su tutti i conti rimasti in righe cont.
|
||||
for (int i=0;i<_righeiva->items();i++)
|
||||
{
|
||||
TRectype& rec_rmoviva = *(TRectype*)_righeiva->objptr(i);
|
||||
real imponibile = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
||||
real imposta = rec_rmoviva.get_real(RMI_IMPOSTA);
|
||||
TGeneric_distrib dimponibile(imponibile, ndec);
|
||||
TGeneric_distrib dimposta(imposta, ndec);
|
||||
for (int j=0;j<_righecont->items();j++)
|
||||
if (!rec_rmoviva.empty())
|
||||
{
|
||||
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(j);
|
||||
real importo = rec_rmov.get_real(RMV_IMPORTO);
|
||||
dimponibile.add(importo);
|
||||
dimposta.add(importo);
|
||||
real imponibile = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
||||
real imposta = rec_rmoviva.get_real(RMI_IMPOSTA);
|
||||
TGeneric_distrib dimponibile(imponibile, ndec);
|
||||
TGeneric_distrib dimposta(imposta, ndec);
|
||||
for (int j=0;j<_righecont->items();j++)
|
||||
{
|
||||
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(j);
|
||||
real importo = rec_rmov.get_real(RMV_IMPORTO);
|
||||
dimponibile.add(importo);
|
||||
dimposta.add(importo);
|
||||
}
|
||||
for (int j=0;j<_righecont->items();j++)
|
||||
{
|
||||
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(j);
|
||||
real importo = dimponibile.get();
|
||||
real imposta = dimposta.get();
|
||||
rec_rmoviva.put(RMI_TIPOC, rec_rmov.get(RMV_TIPOC));
|
||||
rec_rmoviva.put(RMI_GRUPPO, rec_rmov.get(RMV_GRUPPO));
|
||||
rec_rmoviva.put(RMI_CONTO, rec_rmov.get(RMV_CONTO));
|
||||
rec_rmoviva.put(RMI_SOTTOCONTO, rec_rmov.get(RMV_SOTTOCONTO));
|
||||
rec_rmoviva.put(RMI_IMPONIBILE, importo);
|
||||
rec_rmoviva.put(RMI_IMPOSTA, imposta);
|
||||
paragraph.format("%d,%d",LF_RMOVIVA, nrigai++);
|
||||
_conf->set_paragraph(paragraph); // riga iva
|
||||
rec2ini(rec_rmoviva);
|
||||
}
|
||||
}
|
||||
for (int j=0;j<_righecont->items();j++)
|
||||
{
|
||||
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(j);
|
||||
real importo = dimponibile.get();
|
||||
real imposta = dimposta.get();
|
||||
rec_rmoviva.put(RMI_TIPOC, rec_rmov.get(RMV_TIPOC));
|
||||
rec_rmoviva.put(RMI_GRUPPO, rec_rmov.get(RMV_GRUPPO));
|
||||
rec_rmoviva.put(RMI_CONTO, rec_rmov.get(RMV_CONTO));
|
||||
rec_rmoviva.put(RMI_SOTTOCONTO, rec_rmov.get(RMV_SOTTOCONTO));
|
||||
rec_rmoviva.put(RMI_IMPONIBILE, importo);
|
||||
rec_rmoviva.put(RMI_IMPOSTA, imposta);
|
||||
paragraph.format("%d,%d",LF_RMOVIVA, nrigai++);
|
||||
_conf->set_paragraph(paragraph); // riga iva
|
||||
rec2ini(rec_rmoviva);
|
||||
}
|
||||
//_righeiva->destroy(i, true);
|
||||
}
|
||||
_righecont->destroy();
|
||||
}
|
||||
@ -431,9 +449,10 @@ bool THardy_movimenti::scrivi_righe()
|
||||
// procedura principale di conversione
|
||||
bool THardy_movimenti::trasferisci()
|
||||
{
|
||||
// creazione array delle aliquote iva con % indetraibilitaà
|
||||
// creazione array delle aliquote iva con % indetraibilità e degli omaggi
|
||||
// leggere la tabella hardy AliquoteIVA
|
||||
_ivaind->destroy();
|
||||
_ivaoma->destroy();
|
||||
TString query_iva;
|
||||
query_iva << query_header();
|
||||
query_iva << "SELECT * "
|
||||
@ -443,11 +462,17 @@ bool THardy_movimenti::trasferisci()
|
||||
{
|
||||
const char* codiva = recset_iva.get("IdIva").as_string();
|
||||
real ind = recset_iva.get("Indetraibilita").as_real();
|
||||
const int flomaggio = recset_iva.get("FlOmaggio").as_int();
|
||||
if (ind != ZERO)
|
||||
{
|
||||
real* oggetto = new real();
|
||||
_ivaind->add(codiva, (TObject*)oggetto);
|
||||
}
|
||||
if (flomaggio > 0)
|
||||
{
|
||||
real* oggetto = new real();
|
||||
_ivaoma->add(codiva, (TObject*)oggetto);
|
||||
}
|
||||
}
|
||||
|
||||
// query su testate movimenti
|
||||
@ -510,17 +535,19 @@ bool THardy_movimenti::trasferisci()
|
||||
test_movcont();
|
||||
// scrive RMOV e /o RMOVIVA a partire da array righe letti da db hardy
|
||||
bool ok = scrivi_righe();
|
||||
#ifdef DBG
|
||||
TString msg;
|
||||
if (ok)
|
||||
msg << (iva ? TR("Movimento iva "): TR("Movimento contabile ")) << _kmovcont << " generato nel file " << temp;
|
||||
msg << (iva ? TR("Movimento iva "): TR("Movimento contabile ")) << _kmovcont << TR(" generato nel file ") << temp;
|
||||
else
|
||||
{
|
||||
ntran--;
|
||||
if (temp.exist())
|
||||
temp.fremove();
|
||||
msg << (iva ? TR("Il movimento iva "): TR("Il movimento contabile ")) << _kmovcont << " ha generato un errore, non è stato convertito ";
|
||||
msg << (iva ? TR("Il movimento iva "): TR("Il movimento contabile ")) << _kmovcont << TR(" ha generato un errore, non è stato convertito ");
|
||||
}
|
||||
log(msg);
|
||||
#endif
|
||||
}
|
||||
if (_conf != NULL)
|
||||
delete _conf;
|
||||
@ -530,7 +557,16 @@ bool THardy_movimenti::trasferisci()
|
||||
app << "cg2 -0 -i" << outdir << "/ha*.ini";
|
||||
TExternal_app primanota(app);
|
||||
primanota.run(true);
|
||||
TString msg;
|
||||
msg << TR("Importazione completata");
|
||||
log(msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
TString msg;
|
||||
msg << TR("Importazione annullata");
|
||||
log(msg);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -539,6 +575,7 @@ THardy_movimenti::THardy_movimenti(const int anno, const TDate dadata, const TDa
|
||||
_righeiva = new TArray;
|
||||
_righecont = new TArray;
|
||||
_ivaind = new TAssoc_array;
|
||||
_ivaoma = new TAssoc_array;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user