Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21414 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
e9611c895d
commit
d318dbba65
@ -570,7 +570,7 @@ NAVP =
|
||||
CLI_GRUPPO = 4
|
||||
CLI_CONTO = 101
|
||||
FOR_GRUPPO = 5
|
||||
FOR_CONTO = 600
|
||||
FOR_CONTO = 601
|
||||
GRUPPI_MOV = 7|8
|
||||
|
||||
// parametri generali della maschera (dns user password)
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include <mov.h>
|
||||
#include <rmov.h>
|
||||
#include <rmoviva.h>
|
||||
#include <rcausali.h>
|
||||
|
||||
const char* const APPNAME = TR("Conversione movimenti");
|
||||
|
||||
@ -30,7 +31,7 @@ class THardy_movimenti : public THardy_transfer
|
||||
long _kmovcont; // movimento contabile in esame
|
||||
TArray* _righeiva; // array dele righe iva hardy
|
||||
TArray* _righecont; // array delle righe contabili hardy
|
||||
|
||||
TAssoc_array* _ivaind; // array dei codici iva con % di indetraibilità
|
||||
|
||||
protected:
|
||||
bool scrivi_righe();
|
||||
@ -40,7 +41,8 @@ protected:
|
||||
bool test_moviva();
|
||||
void conto2campo(const TString& hd_tipoc, const TString& hd_key, TString4& tipoc, int& gr, int& co, long& so);
|
||||
void rec2ini(const TRectype& rec);
|
||||
void recset2rec(TODBC_recordset& recset, TRectype& rec, const TString_array& lista_campi);
|
||||
void recset2rec(const TODBC_recordset& recset, TRectype& rec, const TString_array& lista_campi);
|
||||
real get_imponibile(const TRectype& rec);
|
||||
|
||||
public:
|
||||
virtual bool trasferisci();
|
||||
@ -48,7 +50,7 @@ public:
|
||||
};
|
||||
|
||||
// carica il record campo con il record hardy in base alla configurazione
|
||||
void THardy_movimenti::recset2rec(TODBC_recordset& recset, TRectype& rec, const TString_array& lista_campi)
|
||||
void THardy_movimenti::recset2rec(const TODBC_recordset& recset, TRectype& rec, const TString_array& lista_campi)
|
||||
{
|
||||
TString campo_dest, campo_orig, valore, str;
|
||||
FOR_EACH_ARRAY_ROW(lista_campi,i,row)
|
||||
@ -317,6 +319,29 @@ bool THardy_movimenti::scrivi_righecont()
|
||||
return true;
|
||||
}
|
||||
|
||||
// calcola imponibile della riga iva passata:
|
||||
// 1. se è una riga con iva indetraibile verifico il conto 4 sulla causale
|
||||
// se il conto c'è, l'imponibile è imponibile della riga
|
||||
// se il conto non c'è calcolo iva indetraibile utilizzando la % e la sommo all'imponibile
|
||||
// 2. se è una riga con iva normale, l'imponibile è imponibliie della riga
|
||||
real THardy_movimenti::get_imponibile(const TRectype& rec)
|
||||
{
|
||||
real imponibile = rec.get_real(RMI_IMPONIBILE);
|
||||
const char* codiva = rec.get(RMI_CODIVA);
|
||||
if (_ivaind->is_key(codiva))
|
||||
{
|
||||
TString16 causale = get_str("IdCausale");
|
||||
causale << "|4";
|
||||
const TString& gruppo = cache().get(LF_RCAUSALI, causale, RCA_GRUPPO);
|
||||
if (gruppo.blank())
|
||||
{
|
||||
real& perc = (real&)_ivaind->find(codiva);
|
||||
imponibile = imponibile+(imponibile*perc)/100;
|
||||
}
|
||||
}
|
||||
return imponibile;
|
||||
}
|
||||
|
||||
// gestisce tutto il procedimento di scrittura su ini delle righe iva e contabili
|
||||
bool THardy_movimenti::scrivi_righe()
|
||||
{
|
||||
@ -341,7 +366,9 @@ bool THardy_movimenti::scrivi_righe()
|
||||
for (int i=0;i<_righeiva->items();i++)
|
||||
{
|
||||
TRectype& rec_rmoviva = *(TRectype*)_righeiva->objptr(i);
|
||||
real imponibile = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
||||
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);
|
||||
@ -392,7 +419,7 @@ bool THardy_movimenti::scrivi_righe()
|
||||
_conf->set_paragraph(paragraph); // riga iva
|
||||
rec2ini(rec_rmoviva);
|
||||
}
|
||||
_righeiva->destroy(i, true);
|
||||
//_righeiva->destroy(i, true);
|
||||
}
|
||||
_righecont->destroy();
|
||||
}
|
||||
@ -406,7 +433,24 @@ bool THardy_movimenti::trasferisci()
|
||||
{
|
||||
// creazione array delle aliquote iva con % indetraibilitaà
|
||||
// leggere la tabella hardy AliquoteIVA
|
||||
_ivaind->destroy();
|
||||
TString query_iva;
|
||||
query_iva << query_header();
|
||||
query_iva << "SELECT * "
|
||||
"FROM dbo.AliquoteIVA ";
|
||||
TODBC_recordset recset_iva(query_iva);
|
||||
for (bool ok=recset_iva.move_first();ok;ok=recset_iva.move_next())
|
||||
{
|
||||
const char* codiva = recset_iva.get("IdIva").as_string();
|
||||
real ind = recset_iva.get("Indetraibilita").as_real();
|
||||
if (ind != ZERO)
|
||||
{
|
||||
real* oggetto = new real();
|
||||
_ivaind->add(codiva, (TObject*)oggetto);
|
||||
}
|
||||
}
|
||||
|
||||
// query su testate movimenti
|
||||
TString16 dastr, astr;
|
||||
dastr.format("%4d-%2d-%2d", _dadata.year(), _dadata.month(), _dadata.day());
|
||||
astr.format("%4d-%2d-%2d", _adata.year(), _adata.month(), _adata.day());
|
||||
@ -494,6 +538,7 @@ THardy_movimenti::THardy_movimenti(const int anno, const TDate dadata, const TDa
|
||||
{
|
||||
_righeiva = new TArray;
|
||||
_righecont = new TArray;
|
||||
_ivaind = new TAssoc_array;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user