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:
parent
ab2bb0bef6
commit
96f2023312
@ -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 =
|
||||||
|
118
ha/hacnv200.cpp
118
ha/hacnv200.cpp
@ -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,41 +401,49 @@ 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);
|
||||||
|
|
||||||
if (riga_omaggio)
|
// se la descrizione comincia con queste stringhe, significa che è un pagamento immediato
|
||||||
_righecont->destroy(i);
|
// 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
|
else
|
||||||
{
|
if (riga_omaggio)
|
||||||
bool found = (tipoconto == 3) || (tipoconto == 4);
|
|
||||||
|
|
||||||
if (!found)
|
|
||||||
{
|
|
||||||
TToken_string cod("", ',');
|
|
||||||
cod.add(gruppo);
|
|
||||||
cod.add(conto);
|
|
||||||
cod.add(sottoconto);
|
|
||||||
|
|
||||||
// Provo il sottoconto ma se non riesco provo con conto e poi anche gruppo (formato -> 3,1,2 o 3,1,0 o 3,0,0)
|
|
||||||
for (int c = 2; !found && c >= 0; c--)
|
|
||||||
{
|
|
||||||
found = (conti_mov.find(cod)) >= 0;
|
|
||||||
cod.add(0, c);
|
|
||||||
}
|
|
||||||
if (!found)
|
|
||||||
_righecont->destroy(i);
|
|
||||||
}
|
|
||||||
if (found)
|
|
||||||
{
|
{
|
||||||
const char sezione = rec_rmov.get_char(RMV_SEZIONE);
|
_righecont->destroy(i);
|
||||||
if (sezione != sez_cau)
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool found = (tipoconto == 3) || (tipoconto == 4);
|
||||||
|
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
TToken_string cod("", ',');
|
||||||
|
cod.add(gruppo);
|
||||||
|
cod.add(conto);
|
||||||
|
cod.add(sottoconto);
|
||||||
|
|
||||||
|
// Provo il sottoconto ma se non riesco provo con conto e poi anche gruppo (formato -> 3,1,2 o 3,1,0 o 3,0,0)
|
||||||
|
for (int c = 2; !found && c >= 0; c--)
|
||||||
|
{
|
||||||
|
found = (conti_mov.find(cod)) >= 0;
|
||||||
|
cod.add(0, c);
|
||||||
|
}
|
||||||
|
if (!found)
|
||||||
|
_righecont->destroy(i);
|
||||||
|
}
|
||||||
|
if (found)
|
||||||
{
|
{
|
||||||
real importo = rec_rmov.get_real(RMV_IMPORTO);
|
const char sezione = rec_rmov.get_char(RMV_SEZIONE);
|
||||||
importo = -importo;
|
if (sezione != sez_cau)
|
||||||
rec_rmov.put(RMV_SEZIONE, sez_cau);
|
{
|
||||||
rec_rmov.put(RMV_IMPORTO, importo);
|
real importo = rec_rmov.get_real(RMV_IMPORTO);
|
||||||
|
importo = -importo;
|
||||||
|
rec_rmov.put(RMV_SEZIONE, sez_cau);
|
||||||
|
rec_rmov.put(RMV_IMPORTO, importo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_righecont->pack();
|
_righecont->pack();
|
||||||
const bool singola_rigacont = (_righecont->items()==1);
|
const bool singola_rigacont = (_righecont->items()==1);
|
||||||
@ -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,24 +531,32 @@ 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);
|
||||||
real importo = rec_rmov.get_real(RMV_IMPORTO);
|
const bool riga_cont = (rec_rmov.get(RMV_ROWTYPE) == "C");
|
||||||
dimponibile.add(importo);
|
if (!riga_cont)
|
||||||
dimposta.add(importo);
|
{
|
||||||
|
real importo = rec_rmov.get_real(RMV_IMPORTO);
|
||||||
|
dimponibile.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);
|
||||||
real importo = dimponibile.get();
|
const bool riga_cont = (rec_rmov.get(RMV_ROWTYPE) == "C");
|
||||||
real imposta = dimposta.get();
|
if (!riga_cont)
|
||||||
rec_rmoviva.put(RMI_TIPOC, rec_rmov.get(RMV_TIPOC));
|
{
|
||||||
rec_rmoviva.put(RMI_GRUPPO, rec_rmov.get(RMV_GRUPPO));
|
real importo = dimponibile.get();
|
||||||
rec_rmoviva.put(RMI_CONTO, rec_rmov.get(RMV_CONTO));
|
real imposta = dimposta.get();
|
||||||
rec_rmoviva.put(RMI_SOTTOCONTO, rec_rmov.get(RMV_SOTTOCONTO));
|
rec_rmoviva.put(RMI_TIPOC, rec_rmov.get(RMV_TIPOC));
|
||||||
rec_rmoviva.put(RMI_IMPONIBILE, importo);
|
rec_rmoviva.put(RMI_GRUPPO, rec_rmov.get(RMV_GRUPPO));
|
||||||
rec_rmoviva.put(RMI_IMPOSTA, imposta);
|
rec_rmoviva.put(RMI_CONTO, rec_rmov.get(RMV_CONTO));
|
||||||
paragraph.format("%d,%d",LF_RMOVIVA, nrigai++);
|
rec_rmoviva.put(RMI_SOTTOCONTO, rec_rmov.get(RMV_SOTTOCONTO));
|
||||||
_conf->set_paragraph(paragraph); // riga iva
|
rec_rmoviva.put(RMI_IMPONIBILE, importo);
|
||||||
rec2ini(rec_rmoviva);
|
rec_rmoviva.put(RMI_IMPOSTA, imposta);
|
||||||
|
paragraph.format("%d,%d",LF_RMOVIVA, nrigai++);
|
||||||
|
_conf->set_paragraph(paragraph); // riga iva
|
||||||
|
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();
|
||||||
|
@ -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,17 +59,8 @@ 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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user