git-svn-id: svn://10.65.10.50/branches/R_10_00@23113 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
be35d6065c
commit
6c86e3468a
@ -235,7 +235,7 @@ void TArchive_doc::archivia(const TMask& m)
|
|||||||
orig << name;
|
orig << name;
|
||||||
dest << SLASH << name;
|
dest << SLASH << name;
|
||||||
fcopy(orig, dest);
|
fcopy(orig, dest);
|
||||||
xvt_fsys_removefile(orig); //elimina il file di origine dopo averlo copiato
|
xvt_fsys_remove_file(orig); //elimina il file di origine dopo averlo copiato
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,6 @@ void TMovimentoPN_VE::destroy_iva_row(int i)
|
|||||||
|
|
||||||
TImporto TMovimentoPN_VE::real2imp(const real& r, char row_type)
|
TImporto TMovimentoPN_VE::real2imp(const real& r, char row_type)
|
||||||
{
|
{
|
||||||
CHECK(_caus, "Orgggssbb..._caus pointer is NULL!");
|
|
||||||
bool dare = false;
|
bool dare = false;
|
||||||
if (row_type == 'S')
|
if (row_type == 'S')
|
||||||
dare = _caus->sezione_ritsoc() == 'D';
|
dare = _caus->sezione_ritsoc() == 'D';
|
||||||
@ -142,7 +141,7 @@ int TMovimentoPN_VE::set_cg_rec(int n, const TImporto& imp, const TBill& conto,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int pos = -1;
|
int pos = -1;
|
||||||
if (tipo == 'F')
|
if (tipo == 'F' || tipo == '2')
|
||||||
{
|
{
|
||||||
pos = type2pos('D');
|
pos = type2pos('D');
|
||||||
if (pos == -1)
|
if (pos == -1)
|
||||||
@ -188,32 +187,32 @@ void TMovimentoPN_VE::enter_row(int i, const TString& descr_cr)
|
|||||||
|
|
||||||
TRectype& cur = iva(i);
|
TRectype& cur = iva(i);
|
||||||
const TString4 tipodet = cur.get(RMI_TIPODET);
|
const TString4 tipodet = cur.get(RMI_TIPODET);
|
||||||
const TString4 zanicchi(cur.get(RMI_CODIVA)); // Codice IVA
|
const TString4 zanicchi = cur.get(RMI_CODIVA); // Codice IVA
|
||||||
const int anno = lfile().curr().get_date(MOV_DATAREG).year();
|
|
||||||
real imponibile = cur.get_real(RMI_IMPONIBILE);
|
real imponibile = cur.get_real(RMI_IMPONIBILE);
|
||||||
real imposta = cur.get_real(RMI_IMPOSTA);
|
real imposta = cur.get_real(RMI_IMPOSTA);
|
||||||
|
|
||||||
if (imposta.is_zero() && _caus->corrispettivi()) // In caso di corrispettivi ...
|
if (imposta.is_zero() && _caus->corrispettivi()) // In caso di corrispettivi ...
|
||||||
{
|
{
|
||||||
const TCodiceIVA i(zanicchi);
|
const TCodiceIVA i(zanicchi);
|
||||||
imposta = i.scorpora(imponibile); // ... scorpora imposta dall'imponibile
|
imposta = i.scorpora(imponibile); // ... scorpora imposta dall'imponibile
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calcola riga causale col conto opportuno
|
// Calcola riga causale col conto opportuno
|
||||||
|
const int anno = curr().get_date(MOV_DATAREG).year();
|
||||||
real imp, impind, iva, ivaind;
|
real imp, impind, iva, ivaind;
|
||||||
int flag = analizza_riga_IVA(imponibile, imposta, *_caus, anno, zanicchi, tipodet, imp, iva, impind, ivaind);
|
int flag = analizza_riga_IVA(imponibile, imposta, *_caus, anno, zanicchi, tipodet, imp, iva, impind, ivaind);
|
||||||
const TBill conto(cur);
|
const TBill conto(cur);
|
||||||
|
|
||||||
imponibile = imp + impind;
|
imponibile = imp + impind;
|
||||||
if (conto.ok() && !imponibile.is_zero()) // Se c'e' imponibile ...
|
if (conto.ok() && !imponibile.is_zero()) // Se c'e' imponibile ...
|
||||||
{ // crea una nuova riga contabile
|
{ // crea una nuova riga contabile
|
||||||
// Aggiorna conto sulla riga contabile
|
// Aggiorna conto sulla riga contabile
|
||||||
const TImporto val(real2imp(imponibile, 'I'));
|
const TImporto val(real2imp(imponibile, 'I'));
|
||||||
const int newpos = bill2pos(conto, 'I'); // Riga in cui andra' l'imponibile
|
const int newpos = bill2pos(conto, 'I'); // Riga in cui andrà l'imponibile
|
||||||
|
|
||||||
if (newpos < 0) // conto non esistente: da inserire
|
if (newpos < 0) // conto non esistente: da inserire
|
||||||
{
|
{
|
||||||
const TString d(_caus->desc_agg(2));
|
const TString80 d = _caus->desc_agg(2);
|
||||||
set_cg_rec(-1, val, conto, d.empty() ? descr_cr : d, 'I');
|
set_cg_rec(-1, val, conto, d.empty() ? descr_cr : d, 'I');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -222,25 +221,22 @@ void TMovimentoPN_VE::enter_row(int i, const TString& descr_cr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Aggiorna conto IVA sulla riga contabile
|
// Aggiorna conto IVA sulla riga contabile
|
||||||
|
if (!iva.is_zero()) // Se c'e' imposta ...
|
||||||
if (!iva.is_zero()) // Se c'e' imposta ...
|
|
||||||
{
|
{
|
||||||
int newposiva = type2pos('D');
|
const TRectype& head = lfile().curr();
|
||||||
const TImporto val(real2imp(iva, 'I'));
|
int newposiva = type2pos('D'); // IVA detraibile
|
||||||
|
TImporto val(real2imp(iva, 'I'));
|
||||||
|
|
||||||
if (newposiva < 0)
|
if (newposiva < 0)
|
||||||
{
|
{
|
||||||
const TRectype& head = lfile().curr();
|
|
||||||
int ri = RIGA_IVA_DETRAIBILE;
|
int ri = RIGA_IVA_DETRAIBILE;
|
||||||
TBill contoiva;
|
TBill contoiva;
|
||||||
|
|
||||||
if (head.get_bool(MOV_LIQDIFF))
|
if (head.get_bool(MOV_LIQDIFF))
|
||||||
_caus->bill(ri = RIGA_IVA_DIFFERITA, contoiva); else
|
_caus->bill(ri = RIGA_IVA_DIFFERITA, contoiva); else
|
||||||
if (head.get_bool(MOV_IVAXCASSA))
|
if (head.get_bool(MOV_IVAXCASSA))
|
||||||
_caus->bill(ri = RIGA_IVA_PER_CASSA, contoiva);
|
_caus->bill(ri = RIGA_IVA_PER_CASSA, contoiva);
|
||||||
if (!contoiva.ok())
|
if (!contoiva.ok())
|
||||||
_caus->bill(ri = RIGA_IVA_DETRAIBILE, contoiva);
|
_caus->bill(ri = RIGA_IVA_DETRAIBILE, contoiva);
|
||||||
|
|
||||||
if (contoiva.ok())
|
if (contoiva.ok())
|
||||||
{
|
{
|
||||||
const TString80 d = _caus->desc_agg(ri);
|
const TString80 d = _caus->desc_agg(ri);
|
||||||
@ -249,19 +245,43 @@ void TMovimentoPN_VE::enter_row(int i, const TString& descr_cr)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
add_cg_rec(newposiva, val);
|
add_cg_rec(newposiva, val);
|
||||||
|
|
||||||
|
if (is_split_payment(head))
|
||||||
|
{
|
||||||
|
const char* desc = TR("IVA art.17-ter D.P.R. 633/1972");
|
||||||
|
|
||||||
|
const int r1 = type2pos('1');
|
||||||
|
if (r1 < 0)
|
||||||
|
{
|
||||||
|
const TBill cliente(cg(0));
|
||||||
|
set_cg_rec(r1, val, cliente, desc, '1');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
add_cg_rec(r1, val);
|
||||||
|
|
||||||
|
val.swap_section();
|
||||||
|
const int r2 = type2pos('2');
|
||||||
|
if (r2 < 0)
|
||||||
|
{
|
||||||
|
const TBill contoiva(cg(newposiva));
|
||||||
|
set_cg_rec(r2, val, contoiva, desc, '2');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
add_cg_rec(r2, val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ivaind.is_zero()) // Se c'e' imposta ...
|
if (!ivaind.is_zero()) // Se c'è IVA indetraibile ...
|
||||||
{
|
{
|
||||||
int newposiva = type2pos('N');
|
int newposiva = type2pos('N');
|
||||||
const TImporto val(real2imp(ivaind, 'I'));
|
const TImporto val(real2imp(ivaind, 'I'));
|
||||||
if (newposiva < 0)
|
if (newposiva < 0)
|
||||||
{
|
{
|
||||||
const TString80 d = _caus->desc_agg(RIGA_IVA_NON_DETRAIBILE);
|
const TString80 desc = _caus->desc_agg(RIGA_IVA_NON_DETRAIBILE);
|
||||||
TBill contoivaind;
|
TBill contoivaind;
|
||||||
_caus->bill(RIGA_IVA_NON_DETRAIBILE, contoivaind);
|
_caus->bill(RIGA_IVA_NON_DETRAIBILE, contoivaind);
|
||||||
if (contoivaind.ok())
|
if (contoivaind.ok())
|
||||||
newposiva = set_cg_rec(-1, val, contoivaind, d, 'N');
|
newposiva = set_cg_rec(-1, val, contoivaind, desc, 'N');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
add_cg_rec(newposiva, val);
|
add_cg_rec(newposiva, val);
|
||||||
@ -2773,17 +2793,19 @@ error_type TContabilizzazione::write_scadenze(TDocumento& doc, bool recontabiliz
|
|||||||
const TCurrency totimponibili = td - totimposte - totspese;
|
const TCurrency totimponibili = td - totimposte - totspese;
|
||||||
TCurrency_documento anticipo(doc.get_real(DOC_IMPPAGATO), doc);
|
TCurrency_documento anticipo(doc.get_real(DOC_IMPPAGATO), doc);
|
||||||
|
|
||||||
|
// Caso normale: anticipo inferiore all'intera cifra da pagare
|
||||||
if (anticipo.abs() < td.abs())
|
if (anticipo.abs() < td.abs())
|
||||||
{
|
{
|
||||||
TGeneric_distrib d(anticipo.get_num(), ndec);
|
const real imposte_effettive = is_split_payment(head) ? ZERO : totimposte.get_num();
|
||||||
|
|
||||||
|
TGeneric_distrib d(anticipo.get_num(), ndec);
|
||||||
d.add(totimponibili.get_num());
|
d.add(totimponibili.get_num());
|
||||||
d.add(totimposte.get_num());
|
d.add(imposte);
|
||||||
d.add(totspese.get_num());
|
d.add(totspese.get_num());
|
||||||
|
|
||||||
const TCurrency_documento pagtotimponibili(totimponibili.get_num() - d.get(), doc);
|
const TCurrency_documento pagtotimponibili(totimponibili.get_num() - d.get(), doc);
|
||||||
TCurrency_documento diffiva(d.get(), doc);
|
TCurrency_documento diffiva(d.get(), doc);
|
||||||
const TCurrency_documento pagtotimposte (totimposte.get_num() - diffiva.get_num(), doc);
|
const TCurrency_documento pagtotimposte (imposte_effettive - diffiva.get_num(), doc);
|
||||||
const TCurrency_documento pagtotspese (totspese.get_num() - d.get(), doc);
|
const TCurrency_documento pagtotspese (totspese.get_num() - d.get(), doc);
|
||||||
|
|
||||||
if (in_valuta)
|
if (in_valuta)
|
||||||
@ -2806,7 +2828,9 @@ error_type TContabilizzazione::write_scadenze(TDocumento& doc, bool recontabiliz
|
|||||||
pag.set_total_valuta(pagtotimponibili, pagtotimposte, pagtotspese, val1, val2, val3);
|
pag.set_total_valuta(pagtotimponibili, pagtotimposte, pagtotspese, val1, val2, val3);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
pag.set_total( pagtotimponibili, pagtotimposte, pagtotspese);
|
pag.set_total( pagtotimponibili, pagtotimposte, pagtotspese);
|
||||||
|
}
|
||||||
pag.set_rate_auto( );
|
pag.set_rate_auto( );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2838,19 +2862,21 @@ error_type TContabilizzazione::write_scadenze(TDocumento& doc, bool recontabiliz
|
|||||||
// Crea una rimessa diretta con la data del documento per il valore dell'anticipo
|
// Crea una rimessa diretta con la data del documento per il valore dell'anticipo
|
||||||
pag.set_rata(0, in_valuta ? anticipo.get_num() : ZERO, anticipo_base.get_num(), first_date, 1, "", false);
|
pag.set_rata(0, in_valuta ? anticipo.get_num() : ZERO, anticipo_base.get_num(), first_date, 1, "", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
const int nr = pag.n_rate();
|
const int nr = pag.n_rate();
|
||||||
|
|
||||||
real imponibile, imponibile_val;
|
/*
|
||||||
|
real imponibile, imponibile_val;
|
||||||
for (int i = nr-1; i >= 0; i--)
|
for (int i = nr-1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
if (in_valuta)
|
if (in_valuta)
|
||||||
imponibile_val += pag.tval_rata(i);
|
imponibile_val += pag.tval_rata(i);
|
||||||
imponibile += pag.tlit_rata(i);
|
imponibile += pag.tlit_rata(i);
|
||||||
}
|
}
|
||||||
partita.put(PART_IMPORTO, imponibile);
|
*/
|
||||||
partita.put(PART_IMPORTOVAL, imponibile_val);
|
partita.put(PART_IMPORTO, pag.imponibile(false));
|
||||||
partita.put(PART_IMPOSTA, imposte);
|
partita.put(PART_IMPORTOVAL, in_valuta ? pag.imponibile(true) : ZERO);
|
||||||
|
partita.put(PART_IMPOSTA, pag.imposta(in_valuta));
|
||||||
partita.put(PART_SPESE, totspese.get_num());
|
partita.put(PART_SPESE, totspese.get_num());
|
||||||
|
|
||||||
// Se sto ricontabilizzando meno rate di quante esistevano prima!
|
// Se sto ricontabilizzando meno rate di quante esistevano prima!
|
||||||
@ -2863,9 +2889,9 @@ error_type TContabilizzazione::write_scadenze(TDocumento& doc, bool recontabiliz
|
|||||||
partita.elimina_rata(i);
|
partita.elimina_rata(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString8 abipr(doc.get(DOC_CODABIP)), cabpr(doc.get(DOC_CODCABP)),
|
const TString8 abipr = doc.get(DOC_CODABIP), cabpr = doc.get(DOC_CODCABP),
|
||||||
abi(doc.get(DOC_CODABIA)), cab(doc.get(DOC_CODCABA));
|
abi = doc.get(DOC_CODABIA), cab = doc.get(DOC_CODCABA);
|
||||||
const TString8 codpag(head.get(MOV_CODPAG));
|
const TString4 codpag = head.get(MOV_CODPAG);
|
||||||
|
|
||||||
for (int i = 0; i < nr; i++)
|
for (int i = 0; i < nr; i++)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user