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;
|
||||
dest << SLASH << name;
|
||||
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)
|
||||
{
|
||||
CHECK(_caus, "Orgggssbb..._caus pointer is NULL!");
|
||||
bool dare = false;
|
||||
if (row_type == 'S')
|
||||
dare = _caus->sezione_ritsoc() == 'D';
|
||||
@ -142,7 +141,7 @@ int TMovimentoPN_VE::set_cg_rec(int n, const TImporto& imp, const TBill& conto,
|
||||
else
|
||||
{
|
||||
int pos = -1;
|
||||
if (tipo == 'F')
|
||||
if (tipo == 'F' || tipo == '2')
|
||||
{
|
||||
pos = type2pos('D');
|
||||
if (pos == -1)
|
||||
@ -188,32 +187,32 @@ void TMovimentoPN_VE::enter_row(int i, const TString& descr_cr)
|
||||
|
||||
TRectype& cur = iva(i);
|
||||
const TString4 tipodet = cur.get(RMI_TIPODET);
|
||||
const TString4 zanicchi(cur.get(RMI_CODIVA)); // Codice IVA
|
||||
const int anno = lfile().curr().get_date(MOV_DATAREG).year();
|
||||
const TString4 zanicchi = cur.get(RMI_CODIVA); // Codice IVA
|
||||
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 ...
|
||||
{
|
||||
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
|
||||
const int anno = curr().get_date(MOV_DATAREG).year();
|
||||
real imp, impind, iva, ivaind;
|
||||
int flag = analizza_riga_IVA(imponibile, imposta, *_caus, anno, zanicchi, tipodet, imp, iva, impind, ivaind);
|
||||
const TBill conto(cur);
|
||||
|
||||
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
|
||||
// Aggiorna conto sulla riga contabile
|
||||
// Aggiorna conto sulla riga contabile
|
||||
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
|
||||
{
|
||||
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');
|
||||
}
|
||||
else
|
||||
@ -222,25 +221,22 @@ void TMovimentoPN_VE::enter_row(int i, const TString& descr_cr)
|
||||
}
|
||||
|
||||
// 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 TImporto val(real2imp(iva, 'I'));
|
||||
const TRectype& head = lfile().curr();
|
||||
int newposiva = type2pos('D'); // IVA detraibile
|
||||
TImporto val(real2imp(iva, 'I'));
|
||||
|
||||
if (newposiva < 0)
|
||||
{
|
||||
const TRectype& head = lfile().curr();
|
||||
int ri = RIGA_IVA_DETRAIBILE;
|
||||
TBill contoiva;
|
||||
|
||||
if (head.get_bool(MOV_LIQDIFF))
|
||||
_caus->bill(ri = RIGA_IVA_DIFFERITA, contoiva); else
|
||||
if (head.get_bool(MOV_IVAXCASSA))
|
||||
_caus->bill(ri = RIGA_IVA_PER_CASSA, contoiva);
|
||||
if (!contoiva.ok())
|
||||
_caus->bill(ri = RIGA_IVA_DETRAIBILE, contoiva);
|
||||
|
||||
_caus->bill(ri = RIGA_IVA_DETRAIBILE, contoiva);
|
||||
if (contoiva.ok())
|
||||
{
|
||||
const TString80 d = _caus->desc_agg(ri);
|
||||
@ -249,19 +245,43 @@ void TMovimentoPN_VE::enter_row(int i, const TString& descr_cr)
|
||||
}
|
||||
else
|
||||
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');
|
||||
const TImporto val(real2imp(ivaind, 'I'));
|
||||
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;
|
||||
_caus->bill(RIGA_IVA_NON_DETRAIBILE, contoivaind);
|
||||
if (contoivaind.ok())
|
||||
newposiva = set_cg_rec(-1, val, contoivaind, d, 'N');
|
||||
newposiva = set_cg_rec(-1, val, contoivaind, desc, 'N');
|
||||
}
|
||||
else
|
||||
add_cg_rec(newposiva, val);
|
||||
@ -2773,17 +2793,19 @@ error_type TContabilizzazione::write_scadenze(TDocumento& doc, bool recontabiliz
|
||||
const TCurrency totimponibili = td - totimposte - totspese;
|
||||
TCurrency_documento anticipo(doc.get_real(DOC_IMPPAGATO), doc);
|
||||
|
||||
// Caso normale: anticipo inferiore all'intera cifra da pagare
|
||||
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(totimposte.get_num());
|
||||
d.add(imposte);
|
||||
d.add(totspese.get_num());
|
||||
|
||||
const TCurrency_documento pagtotimponibili(totimponibili.get_num() - 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);
|
||||
|
||||
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);
|
||||
}
|
||||
else
|
||||
{
|
||||
pag.set_total( pagtotimponibili, pagtotimposte, pagtotspese);
|
||||
}
|
||||
pag.set_rate_auto( );
|
||||
}
|
||||
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
|
||||
pag.set_rata(0, in_valuta ? anticipo.get_num() : ZERO, anticipo_base.get_num(), first_date, 1, "", false);
|
||||
}
|
||||
|
||||
const int nr = pag.n_rate();
|
||||
|
||||
real imponibile, imponibile_val;
|
||||
|
||||
/*
|
||||
real imponibile, imponibile_val;
|
||||
for (int i = nr-1; i >= 0; i--)
|
||||
{
|
||||
if (in_valuta)
|
||||
imponibile_val += pag.tval_rata(i);
|
||||
imponibile += pag.tlit_rata(i);
|
||||
}
|
||||
partita.put(PART_IMPORTO, imponibile);
|
||||
partita.put(PART_IMPORTOVAL, imponibile_val);
|
||||
partita.put(PART_IMPOSTA, imposte);
|
||||
*/
|
||||
partita.put(PART_IMPORTO, pag.imponibile(false));
|
||||
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());
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
const TString8 abipr(doc.get(DOC_CODABIP)), cabpr(doc.get(DOC_CODCABP)),
|
||||
abi(doc.get(DOC_CODABIA)), cab(doc.get(DOC_CODCABA));
|
||||
const TString8 codpag(head.get(MOV_CODPAG));
|
||||
const TString8 abipr = doc.get(DOC_CODABIP), cabpr = doc.get(DOC_CODCABP),
|
||||
abi = doc.get(DOC_CODABIA), cab = doc.get(DOC_CODCABA);
|
||||
const TString4 codpag = head.get(MOV_CODPAG);
|
||||
|
||||
for (int i = 0; i < nr; i++)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user