Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/branches/R_10_00@21556 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2011-02-01 14:09:19 +00:00
parent ab2bb0bef6
commit 96f2023312
3 changed files with 77 additions and 58 deletions

View File

@ -533,7 +533,7 @@ TIPOC =
GRUPPO = GRUPPO =
CONTO = CONTO =
SOTTOCONTO= SOTTOCONTO=
DESCR = _STREXPR,LEFT(Descrizione1+" "+Descrizione2; 50) DESCR = Descrizione2
RCONTR = RCONTR =
TIPOCC = TIPOCC =
GRUPPOC = GRUPPOC =

View File

@ -370,6 +370,7 @@ bool THardy_movimenti::scrivi_righe()
const int ndec = TCurrency::get_firm_dec(false); const int ndec = TCurrency::get_firm_dec(false);
TString paragraph; TString paragraph;
int nrigai = 1; // contatore righe iva int nrigai = 1; // contatore righe iva
TConfig& ini = config(); TConfig& ini = config();
TString8 iva_esente = ini.get("IVA_ESENTE", "Parametri"); TString8 iva_esente = ini.get("IVA_ESENTE", "Parametri");
TToken_string sconto_omaggi = ini.get("CONTO_OMAGGI", "Parametri"); TToken_string sconto_omaggi = ini.get("CONTO_OMAGGI", "Parametri");
@ -400,9 +401,17 @@ bool THardy_movimenti::scrivi_righe()
const int tipoconto = atoi(cache().get(LF_PCON, key, PCN_INDBIL)); const int tipoconto = atoi(cache().get(LF_PCON, key, PCN_INDBIL));
const bool riga_omaggio = (gruppo == gruppo_omaggi) && (conto == conto_omaggi) && (sottoconto == sottoconto_omaggi); const bool riga_omaggio = (gruppo == gruppo_omaggi) && (conto == conto_omaggi) && (sottoconto == sottoconto_omaggi);
const TString & descr = rec_rmov.get(RMV_DESCR);
// se la descrizione comincia con queste stringhe, significa che è un pagamento immediato
// e va passata la riga contabile cosi come è
if (descr.starts_with("S.DO DOC.") || descr.starts_with("ABB. DOC."))
rec_rmov.put(RMV_ROWTYPE, "C");
else
if (riga_omaggio) if (riga_omaggio)
{
_righecont->destroy(i); _righecont->destroy(i);
}
else else
{ {
bool found = (tipoconto == 3) || (tipoconto == 4); bool found = (tipoconto == 3) || (tipoconto == 4);
@ -466,8 +475,10 @@ bool THardy_movimenti::scrivi_righe()
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);
const bool riga_cont = (rec_rmov.get(RMV_ROWTYPE) == "C");
real importo = rec_rmov.get_real(RMV_IMPORTO); real importo = rec_rmov.get_real(RMV_IMPORTO);
if ((!riga_omaggio) && (importo <= imponibile)) if ((!riga_omaggio) && (!riga_cont) && (importo <= imponibile))
{ {
const real impon = rec_rmoviva.get_real(RMI_IMPONIBILE); const real impon = rec_rmoviva.get_real(RMI_IMPONIBILE);
const real iva = rec_rmoviva.get_real(RMI_IMPOSTA); const real iva = rec_rmoviva.get_real(RMI_IMPOSTA);
@ -520,13 +531,20 @@ bool THardy_movimenti::scrivi_righe()
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);
const bool riga_cont = (rec_rmov.get(RMV_ROWTYPE) == "C");
if (!riga_cont)
{
real importo = rec_rmov.get_real(RMV_IMPORTO); real importo = rec_rmov.get_real(RMV_IMPORTO);
dimponibile.add(importo); dimponibile.add(importo);
dimposta.add(importo); dimposta.add(importo);
} }
}
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);
const bool riga_cont = (rec_rmov.get(RMV_ROWTYPE) == "C");
if (!riga_cont)
{
real importo = dimponibile.get(); real importo = dimponibile.get();
real imposta = dimposta.get(); real imposta = dimposta.get();
rec_rmoviva.put(RMI_TIPOC, rec_rmov.get(RMV_TIPOC)); rec_rmoviva.put(RMI_TIPOC, rec_rmov.get(RMV_TIPOC));
@ -539,6 +557,7 @@ bool THardy_movimenti::scrivi_righe()
_conf->set_paragraph(paragraph); // riga iva _conf->set_paragraph(paragraph); // riga iva
rec2ini(rec_rmoviva); rec2ini(rec_rmoviva);
} }
}
// se iva utilizzata per gli omaggi, devo fare un'altra riga iva identica ma con importo avere con iva esente e gr/co/so letto da configurazione CONTO_OMAGGI // se iva utilizzata per gli omaggi, devo fare un'altra riga iva identica ma con importo avere con iva esente e gr/co/so letto da configurazione CONTO_OMAGGI
if (riga_omaggio) if (riga_omaggio)
{ {
@ -558,7 +577,16 @@ bool THardy_movimenti::scrivi_righe()
} }
} }
} }
_righecont->destroy(); for (int j=_righecont->items()-1;j>=0;j--)
{
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(j);
const bool riga_cont = (rec_rmov.get(RMV_ROWTYPE) == "C");
if (riga_cont)
rec_rmov.zero(RMV_ROWTYPE);
else
_righecont->destroy(j, true);
}
//_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)
scrivi_righecont(); scrivi_righecont();

View File

@ -51,7 +51,7 @@ bool THardy_scadenze::trasferisci()
{ {
// se la partita non è a zero, scrivo una scadenza // se la partita non è a zero, scrivo una scadenza
if (importo != ZERO) if (importo != ZERO)
write_scadenza(); //write_scadenza();
importo = ZERO; importo = ZERO;
curr_ese = esercizio; curr_ese = esercizio;
curr_pro = protocollo; curr_pro = protocollo;
@ -59,15 +59,6 @@ bool THardy_scadenze::trasferisci()
real importo_dare = get_real("Dare"); real importo_dare = get_real("Dare");
real importo_avere = get_real("Avere"); real importo_avere = get_real("Avere");
importo+=(importo_dare-importo_avere); importo+=(importo_dare-importo_avere);
const long codcf = hd_key2cli(key);
if (curr_cliente != codcf)
curr_contratto=0;
curr_contratto++;
aggiorna_record(rec, lista_campi);
rec.put(CONDV_CODCF, codcf);
rec.put(CONDV_COD, curr_contratto);
contratti.add(kcontrattot, rec);
test_write(condv);
} }
*/ */
return write_enabled(); return write_enabled();