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_GRUPPO = 4
|
||||||
CLI_CONTO = 101
|
CLI_CONTO = 101
|
||||||
FOR_GRUPPO = 5
|
FOR_GRUPPO = 5
|
||||||
FOR_CONTO = 600
|
FOR_CONTO = 601
|
||||||
GRUPPI_MOV = 7|8
|
GRUPPI_MOV = 7|8
|
||||||
|
|
||||||
// parametri generali della maschera (dns user password)
|
// parametri generali della maschera (dns user password)
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include <mov.h>
|
#include <mov.h>
|
||||||
#include <rmov.h>
|
#include <rmov.h>
|
||||||
#include <rmoviva.h>
|
#include <rmoviva.h>
|
||||||
|
#include <rcausali.h>
|
||||||
|
|
||||||
const char* const APPNAME = TR("Conversione movimenti");
|
const char* const APPNAME = TR("Conversione movimenti");
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ class THardy_movimenti : public THardy_transfer
|
|||||||
long _kmovcont; // movimento contabile in esame
|
long _kmovcont; // movimento contabile in esame
|
||||||
TArray* _righeiva; // array dele righe iva hardy
|
TArray* _righeiva; // array dele righe iva hardy
|
||||||
TArray* _righecont; // array delle righe contabili hardy
|
TArray* _righecont; // array delle righe contabili hardy
|
||||||
|
TAssoc_array* _ivaind; // array dei codici iva con % di indetraibilità
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool scrivi_righe();
|
bool scrivi_righe();
|
||||||
@ -40,7 +41,8 @@ protected:
|
|||||||
bool test_moviva();
|
bool test_moviva();
|
||||||
void conto2campo(const TString& hd_tipoc, const TString& hd_key, TString4& tipoc, int& gr, int& co, long& so);
|
void conto2campo(const TString& hd_tipoc, const TString& hd_key, TString4& tipoc, int& gr, int& co, long& so);
|
||||||
void rec2ini(const TRectype& rec);
|
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:
|
public:
|
||||||
virtual bool trasferisci();
|
virtual bool trasferisci();
|
||||||
@ -48,7 +50,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// carica il record campo con il record hardy in base alla configurazione
|
// 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;
|
TString campo_dest, campo_orig, valore, str;
|
||||||
FOR_EACH_ARRAY_ROW(lista_campi,i,row)
|
FOR_EACH_ARRAY_ROW(lista_campi,i,row)
|
||||||
@ -317,6 +319,29 @@ bool THardy_movimenti::scrivi_righecont()
|
|||||||
return true;
|
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
|
// gestisce tutto il procedimento di scrittura su ini delle righe iva e contabili
|
||||||
bool THardy_movimenti::scrivi_righe()
|
bool THardy_movimenti::scrivi_righe()
|
||||||
{
|
{
|
||||||
@ -341,7 +366,9 @@ bool THardy_movimenti::scrivi_righe()
|
|||||||
for (int i=0;i<_righeiva->items();i++)
|
for (int i=0;i<_righeiva->items();i++)
|
||||||
{
|
{
|
||||||
TRectype& rec_rmoviva = *(TRectype*)_righeiva->objptr(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++)
|
for (int j=0;j<_righecont->items();j++)
|
||||||
{
|
{
|
||||||
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(j);
|
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(j);
|
||||||
@ -392,7 +419,7 @@ bool THardy_movimenti::scrivi_righe()
|
|||||||
_conf->set_paragraph(paragraph); // riga iva
|
_conf->set_paragraph(paragraph); // riga iva
|
||||||
rec2ini(rec_rmoviva);
|
rec2ini(rec_rmoviva);
|
||||||
}
|
}
|
||||||
_righeiva->destroy(i, true);
|
//_righeiva->destroy(i, true);
|
||||||
}
|
}
|
||||||
_righecont->destroy();
|
_righecont->destroy();
|
||||||
}
|
}
|
||||||
@ -406,7 +433,24 @@ bool THardy_movimenti::trasferisci()
|
|||||||
{
|
{
|
||||||
// creazione array delle aliquote iva con % indetraibilitaà
|
// creazione array delle aliquote iva con % indetraibilitaà
|
||||||
// leggere la tabella hardy AliquoteIVA
|
// 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;
|
TString16 dastr, astr;
|
||||||
dastr.format("%4d-%2d-%2d", _dadata.year(), _dadata.month(), _dadata.day());
|
dastr.format("%4d-%2d-%2d", _dadata.year(), _dadata.month(), _dadata.day());
|
||||||
astr.format("%4d-%2d-%2d", _adata.year(), _adata.month(), _adata.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;
|
_righeiva = new TArray;
|
||||||
_righecont = new TArray;
|
_righecont = new TArray;
|
||||||
|
_ivaind = new TAssoc_array;
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
Loading…
x
Reference in New Issue
Block a user