Patch level : 10.0 hardy
Files correlati : hacnv.exe Ricompilazione Demo : [ ] git-svn-id: svn://10.65.10.50/branches/R_10_00@21596 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3f62e9654e
commit
53166666e3
@ -12,6 +12,7 @@
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include <causali.h>
|
||||
#include <pconti.h>
|
||||
#include <mov.h>
|
||||
#include <rmov.h>
|
||||
@ -257,7 +258,7 @@ bool THardy_movimenti::test_moviva()
|
||||
totdoc_calc+=recset_righe.get("Imponibile").as_real();
|
||||
totdoc_calc+=recset_righe.get("Imposta").as_real();
|
||||
}
|
||||
if (totdoc == ZERO)
|
||||
if (totdoc == ZERO && totdoc_calc != ZERO)
|
||||
{
|
||||
_conf->set("SOLAIVA", " ");
|
||||
_conf->set(MOV_TOTDOC, totdoc_calc.string(0,2));
|
||||
@ -378,15 +379,19 @@ bool THardy_movimenti::scrivi_righe()
|
||||
const int gruppo_omaggi = sconto_omaggi.get_int(0);
|
||||
const int conto_omaggi = sconto_omaggi.get_int(1);
|
||||
const long sottoconto_omaggi = sconto_omaggi.get_long(2);
|
||||
real saldo;
|
||||
|
||||
// la sezione della riga 1 mi serve per verificare il segno e la sezione delle righe contabili
|
||||
TString16 causale = get_str("IdCausale");
|
||||
causale << "|1";
|
||||
const char sez_cau = (cache().get(LF_RCAUSALI, causale, RCA_SEZIONE)[0] == 'D' ? 'A' : 'D');
|
||||
bool has_iva_omaggio = false;
|
||||
|
||||
// se è un movimento iva metto in atto il meccanismo di ricerca per assegnare le aliquote ai conti
|
||||
if (_righeiva->items()>0)
|
||||
if (_righeiva->items() > 0)
|
||||
{
|
||||
for (int i = 0; !has_iva_omaggio && i<_righeiva->items(); i++)
|
||||
has_iva_omaggio = _ivaoma->is_key(((TRectype*)_righeiva->objptr(i))->get(RMI_CODIVA));
|
||||
// primo passo: scartare le righe contabili con gruppi non presenti nella lista GRUPPI_MOV
|
||||
for (int i=_righecont->items() - 1;i>=0;i--)
|
||||
{
|
||||
@ -410,7 +415,27 @@ bool THardy_movimenti::scrivi_righe()
|
||||
else
|
||||
if (riga_omaggio)
|
||||
{
|
||||
_righecont->destroy(i);
|
||||
if (!has_iva_omaggio)
|
||||
{
|
||||
paragraph.format("%d,%d",LF_RMOVIVA, nrigai++);
|
||||
_conf->set_paragraph(paragraph); // riga iva
|
||||
rec2ini(*(TRectype*)_righeiva->objptr(0));
|
||||
// sostituisco codice iva e importo (-) e gruppo conto sottoconto
|
||||
const char sezione = rec_rmov.get_char(RMV_SEZIONE);
|
||||
real importo = rec_rmov.get_real(RMV_IMPORTO);
|
||||
if (sezione != sez_cau)
|
||||
importo = -importo;
|
||||
saldo += importo;
|
||||
_conf->set(RMI_CODIVA, iva_esente); // codice iva esente per quadrare il movimento
|
||||
_conf->set(RMI_TIPODET, "");
|
||||
_conf->set(RMI_IMPONIBILE, importo.string(0,2)); // imponibile negativo
|
||||
_conf->set(RMI_IMPOSTA, ""); // imposta zero
|
||||
_conf->set(RMI_TIPOC, "");
|
||||
_conf->set(RMI_GRUPPO, sconto_omaggi.get(0));
|
||||
_conf->set(RMI_CONTO, sconto_omaggi.get(1));
|
||||
_conf->set(RMI_SOTTOCONTO, sconto_omaggi.get(2));
|
||||
}
|
||||
_righecont->destroy(i);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -586,6 +611,16 @@ bool THardy_movimenti::scrivi_righe()
|
||||
else
|
||||
_righecont->destroy(j, true);
|
||||
}
|
||||
if (saldo != ZERO)
|
||||
{
|
||||
TString paragraph;
|
||||
|
||||
paragraph.format("%d",LF_MOV);
|
||||
|
||||
real totdoc(_conf->get(MOV_TOTDOC, paragraph));
|
||||
totdoc += saldo;
|
||||
_conf->set(MOV_TOTDOC, totdoc.string(0,2), paragraph);
|
||||
}
|
||||
//_righecont->destroy();
|
||||
}
|
||||
// scrivo su ini le righe contabili rimaste (tutte se il mov non è iva)
|
||||
@ -676,6 +711,14 @@ bool THardy_movimenti::trasferisci()
|
||||
paragraph.format("%d",LF_MOV);
|
||||
_conf->set_paragraph(paragraph); // testata movimento
|
||||
aggiorna_ini(*_conf, lista_campi);
|
||||
TString codcaus = _conf->get(MOV_CODCAUS);
|
||||
if (cache().get(LF_CAUSALI, codcaus, CAU_MOVAP) == "C")
|
||||
{
|
||||
const TDate d(_conf->get(MOV_DATAREG));
|
||||
const TDate datacomp(31, 12, d.year() - 1);
|
||||
|
||||
_conf->set(MOV_DATACOMP, datacomp.string());
|
||||
}
|
||||
// verifica se è un mov. iva e nel caso aggiorna testata e array righe iva
|
||||
bool iva = test_moviva();
|
||||
// legge righe contabili e aggiorna array righe cont.
|
||||
|
Loading…
x
Reference in New Issue
Block a user