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 <tabutil.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
|
|
||||||
|
#include <causali.h>
|
||||||
#include <pconti.h>
|
#include <pconti.h>
|
||||||
#include <mov.h>
|
#include <mov.h>
|
||||||
#include <rmov.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("Imponibile").as_real();
|
||||||
totdoc_calc+=recset_righe.get("Imposta").as_real();
|
totdoc_calc+=recset_righe.get("Imposta").as_real();
|
||||||
}
|
}
|
||||||
if (totdoc == ZERO)
|
if (totdoc == ZERO && totdoc_calc != ZERO)
|
||||||
{
|
{
|
||||||
_conf->set("SOLAIVA", " ");
|
_conf->set("SOLAIVA", " ");
|
||||||
_conf->set(MOV_TOTDOC, totdoc_calc.string(0,2));
|
_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 gruppo_omaggi = sconto_omaggi.get_int(0);
|
||||||
const int conto_omaggi = sconto_omaggi.get_int(1);
|
const int conto_omaggi = sconto_omaggi.get_int(1);
|
||||||
const long sottoconto_omaggi = sconto_omaggi.get_long(2);
|
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
|
// la sezione della riga 1 mi serve per verificare il segno e la sezione delle righe contabili
|
||||||
TString16 causale = get_str("IdCausale");
|
TString16 causale = get_str("IdCausale");
|
||||||
causale << "|1";
|
causale << "|1";
|
||||||
const char sez_cau = (cache().get(LF_RCAUSALI, causale, RCA_SEZIONE)[0] == 'D' ? 'A' : 'D');
|
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
|
// 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
|
// primo passo: scartare le righe contabili con gruppi non presenti nella lista GRUPPI_MOV
|
||||||
for (int i=_righecont->items() - 1;i>=0;i--)
|
for (int i=_righecont->items() - 1;i>=0;i--)
|
||||||
{
|
{
|
||||||
@ -410,7 +415,27 @@ bool THardy_movimenti::scrivi_righe()
|
|||||||
else
|
else
|
||||||
if (riga_omaggio)
|
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
|
else
|
||||||
{
|
{
|
||||||
@ -586,6 +611,16 @@ bool THardy_movimenti::scrivi_righe()
|
|||||||
else
|
else
|
||||||
_righecont->destroy(j, true);
|
_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();
|
//_righecont->destroy();
|
||||||
}
|
}
|
||||||
// scrivo su ini le righe contabili rimaste (tutte se il mov non è iva)
|
// 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);
|
paragraph.format("%d",LF_MOV);
|
||||||
_conf->set_paragraph(paragraph); // testata movimento
|
_conf->set_paragraph(paragraph); // testata movimento
|
||||||
aggiorna_ini(*_conf, lista_campi);
|
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
|
// verifica se è un mov. iva e nel caso aggiorna testata e array righe iva
|
||||||
bool iva = test_moviva();
|
bool iva = test_moviva();
|
||||||
// legge righe contabili e aggiorna array righe cont.
|
// legge righe contabili e aggiorna array righe cont.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user