Correzione stampa liquidazione in presenza di note di credito su fatture con iva differita e di prorata (CRPA e Bellegotti)

git-svn-id: svn://10.65.10.50/branches/R_10_00@22614 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2012-03-27 15:23:23 +00:00
parent 432bb34728
commit cfb80ca474
6 changed files with 35 additions and 35 deletions

View File

@ -1,6 +1,5 @@
#include <xvt.h> #include <xvt.h>
#define __MAIN__
#include "cg4.h" #include "cg4.h"
int main(int argc,char** argv) int main(int argc,char** argv)

View File

@ -1,10 +1,6 @@
#ifndef __CG4_H #ifndef __CG4_H
#define __CG4_H #define __CG4_H
#ifndef __STRINGS_H
#include <strings.h>
#endif
int cg4100(int argc, char* argv[]); int cg4100(int argc, char* argv[]);
int cg4200(int argc, char* argv[]); int cg4200(int argc, char* argv[]);
int cg4300(int argc, char* argv[]); int cg4300(int argc, char* argv[]);

View File

@ -862,7 +862,6 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
if (has_sc && movdiff && (!datainc.ok() || datainc > inizio)) if (has_sc && movdiff && (!datainc.ok() || datainc > inizio))
{ {
arrpart.add_numreg(numreg); arrpart.add_numreg(numreg);
if (arrpart.utilizzata(numreg, 1)) if (arrpart.utilizzata(numreg, 1))
{ {
@ -875,7 +874,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
if (row >= 0) if (row >= 0)
{ {
TRiga_partite rp = p->riga(row); const TRiga_partite& rp = p->riga(row);
TImporto importo(rp.get_char(PART_SEZ), rp.get_real(PART_IMPORTO)); importo.normalize(); importo.swap_section(); TImporto importo(rp.get_char(PART_SEZ), rp.get_real(PART_IMPORTO)); importo.normalize(); importo.swap_section();
totfat += importo.valore(); totfat += importo.valore();
@ -891,13 +890,18 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
if ((diffpayed && dok) || (pag.valore() > totfat)) if ((diffpayed && dok) || (pag.valore() > totfat))
pag.set(sez, totfat); pag.set(sez, totfat);
pagatt = pag.valore() - pagprec.valore(); pagatt = pag.valore() - pagprec.valore();
if (pagatt > ZERO)
dok = true; // Spostato sotto 26/03/2012
//if (pagatt > ZERO)
// dok = true;
// Inizio aggiunte di Bonazzi del 16/02/2012 // Inizio aggiunte di Bonazzi del 16/02/2012
ncatt = nc.valore() - ncprec.valore(); ncatt = nc.valore() - ncprec.valore();
pagatt -= ncatt; pagatt -= ncatt;
// Fine aggiunte di Bonazzi del 16/02/2012 // Fine aggiunte di Bonazzi del 16/02/2012
if (pagatt > ZERO)
dok = true;
} }
} }
@ -2177,15 +2181,9 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
// Somma i vari prorata calcolati per gli anni precedenti // Somma i vari prorata calcolati per gli anni precedenti
prorata += prorata_precedente1 + prorata_precedente2; prorata += prorata_precedente1 + prorata_precedente2;
if (!fdiffinc_iva_acq.is_zero())
{
// Calcolo prorata su pagamenti con IVA per cassa
const real prorata_diffinc_acq = _prorata.calc_prorata(fdiffinc_iva_acq, _year);
prorata += prorata_diffinc_acq;
fdiffinc_iva_acq -= prorata_diffinc_acq;
}
acquisti_iva -= prorata; // Rettifica acquisti_iva acquisti_iva -= prorata; // Rettifica acquisti_iva
prorata += prorata_diff;
fdiffinc_iva_acq -= prorata_diff; // Rettifica acquisti_iva differiti incassati fdiffinc_iva_acq -= prorata_diff; // Rettifica acquisti_iva differiti incassati
} }
look_plm(month, codatt, TRUE); look_plm(month, codatt, TRUE);

View File

@ -979,10 +979,10 @@ bool TLiquidazione_app::is_differita(long firm, int year)
{ {
long d = (firm == 0) ? _nditte->lfile().get_long("CODDITTA") : firm; long d = (firm == 0) ? _nditte->lfile().get_long("CODDITTA") : firm;
int y = (year == 0) ? atoi(_year) : year; int y = (year == 0) ? atoi(_year) : year;
if (look_lia(d, atoi(_year) > 0)) if (look_lia(d, atoi(_year) > 0), y) // 26/03/2012 aggiunto ,y)
return _lia->get_bool("B1"); return _lia->get_bool("B1");
else else
return FALSE; return false;
} }
real TLiquidazione_app::aliquota_agvia() real TLiquidazione_app::aliquota_agvia()

View File

@ -2316,7 +2316,7 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
if (!_is_visliq) if (!_is_visliq)
iva_acq += rett_cred; iva_acq += rett_cred;
set_row(rw++,FR("@11gIva che si detrae per il periodo@58g%r"), &iva_acq); set_row(rw++,FR("@11gIva che si detrae per il periodo@58g%r"), &iva_acq);
if (diffinc_iva_acq != ZERO) if (!diffinc_iva_acq.is_zero())
set_row(rw++,FR("@11gIVA a liquidazione differita pagata@58g%r"), &diffinc_iva_acq); set_row(rw++,FR("@11gIVA a liquidazione differita pagata@58g%r"), &diffinc_iva_acq);
if (_is_visliq) if (_is_visliq)
set_row(rw++,FR("@11g$[r]Rettifiche IVA a credito$[n]@58g%r"), &rett_cred); set_row(rw++,FR("@11g$[r]Rettifiche IVA a credito$[n]@58g%r"), &rett_cred);

View File

@ -312,21 +312,20 @@ TImporto TRiga_scadenze::importo_pagato_al(bool val, const TDate & al, int mode)
const TDate & datapag = sum.get_date(PART_DATAPAG); const TDate & datapag = sum.get_date(PART_DATAPAG);
if (datapag <= al) if (datapag <= al)
{
const char sez = sum.sezione();
if (mode & 0x1)
{ {
// Inizio aggiunte di Bonazzi del 16/02/2012 // Inizio aggiunte di Bonazzi del 16/02/2012
if (mode & 0x10) // solo le note di credito if (mode & 0x10) // solo le note di credito
{ {
const tipo_movimento tm = (tipo_movimento)sum.get_int(PART_TIPOMOV); const tipo_movimento tm = (tipo_movimento)sum.get_int(PART_TIPOMOV);
if (tm == tm_nota_credito) if (tm != tm_nota_credito)
totale += TImporto(sez, pag.get_real(imp_field)); continue;
} }
else // tutto
totale += TImporto(sez, pag.get_real(imp_field));
// Fine aggiunte di Bonazzi del 16/02/2012 // Fine aggiunte di Bonazzi del 16/02/2012
const char sez = sum.sezione();
if (mode & 0x1)
{
totale += TImporto(sez, pag.get_real(imp_field));
} }
if (!in_val && (mode & 0x8)) // Le ritenute non esistono nei pagamenti in valuta if (!in_val && (mode & 0x8)) // Le ritenute non esistono nei pagamenti in valuta
@ -824,7 +823,15 @@ int TRiga_partite::write(TBaseisamfile& f) const
// Certified 100% // Certified 100%
int TRiga_partite::rewrite(TBaseisamfile& f) const int TRiga_partite::rewrite(TBaseisamfile& f) const
{ {
const int err = is_fattura() ? TTree_rectype::rewrite(f) : TRectype::rewrite(f); int err = NOERR;
if (is_fattura())
err = TTree_rectype::rewrite(f);
else
{
err = TRectype::rewrite(f);
if (err == NOERR && rows_array().rows() > 0) // Elimina rate se riga trasformata da fattura a nota di credito
rows_array().remove();
}
return err; return err;
} }