Patch level : 12.0 394

Files correlati     : cg4.exe

Corretto in funzionamento per fatture per cassa
Corretta stampa registri per l'ultima registrazione stampata 2 volte in certe condizioni

git-svn-id: svn://10.65.10.50/branches/R_10_00@23823 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2017-05-18 05:18:44 +00:00
parent 4674d19582
commit b956d15022
4 changed files with 4531 additions and 4512 deletions

View File

@ -1184,7 +1184,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
#ifdef DBG
const long nr = _mov->get_long(MOV_NUMREG);
if (nr == 29252)
if (tipomov == vendita && iva_cass)
int i = 1 ;
#endif
@ -1461,6 +1461,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
if (nr == 29252)
int i = 1 ;
if (iva_cass && tm == vendita)
int i = 1;
#endif
if ((soloiva &&
@ -1678,7 +1680,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
id.put(RMI_IMPONIBILE, val_imp);
id.put(RMI_IMPOSTA, val_iva);
if (is_detr_diff == 0) // detraibile
if (is_detr_diff == 0 && (tipomov_pag == tm_pagamento || tipomov_pag == tm_pagamento_insoluto)) // detraibile
{
if (tipomov == vendita)
{

View File

@ -136,7 +136,13 @@ const TRectype& TStampa_registri_app::look_comuni (const char* cod)
void TStampa_registri_app::get_dati_ditta()
{
const TRectype& nditte = cache().get(LF_NDITTE, get_firm());
_ragsoc = nditte.get(NDT_RAGSOC);
_ragsoc = nditte.get(NDT_RAGSOC);
TToken_string key; key.format("%ld|%s", get_firm(), (const char*) _codatt);
const TRectype& ndt_att = cache().get(LF_ATTIV, key);
_isviaggio = ndt_att.get_bool("REG74TER");
const char tipoa = nditte.get_char(NDT_TIPOA);
const long codanagr = nditte.get_long(NDT_CODANAGR);
@ -1051,7 +1057,13 @@ int TStampa_registri_app::riga_rmoviva()
_riga_rmi.add_riga(iva);
if (!mov.get_bool(MOV_LIQDIFF) && !(mov.get_bool(MOV_IVAXCASSA) && mov.get_int(MOV_TIPOMOV)>0))
const bool splitpay = mov.get_char(MOV_TIPO) == 'C' && is_split_payment(mov);
const bool liqdiff = !splitpay && mov.get_bool(MOV_LIQDIFF) && is_IVA_diff(mov);
const tipo_movimento tm = (tipo_movimento) mov.get_int(MOV_TIPOMOV);
const bool IVAxcassa = !splitpay && !liqdiff && !_isviaggio && tm > tm_nessuno && is_IVAxCassa(mov);
const bool indetr = iva.get_int(RMI_TIPODET) != 0;
if (!IVAxcassa && !indetr)
_riga_prospettoXcassa.add_riga(impo, impos, codiva);
if (is_split_payment(mov))
@ -1165,7 +1177,7 @@ messaggio TStampa_registri_app::controlla_liquidazione()
{
chiave.format("%04d%02d", _annoes, i);
lim.put("CODTAB", chiave);
if (lim.read() != NOERR || !lim.get_bool("B0"))
if (lim.read() != NOERR || lim.get_bool("B0"))
{
if (lim.get_bool("B1"))
mesi_cal ="";
@ -1180,9 +1192,9 @@ messaggio TStampa_registri_app::controlla_liquidazione()
{
chiave.format("%04d%02d", _annoes, i);
lim.put("CODTAB", chiave);
if (lim.read() != NOERR || !lim.get_bool("B0"))
if (lim.read() != NOERR || lim.get_bool("B0"))
{
if (!lim.get_bool("B1"))
if (lim.get_bool("B1")) // qui
mesi_cal ="";
else
mesi_cal << itom(i) << '\n';
@ -1225,7 +1237,7 @@ messaggio TStampa_registri_app::controlla_liquidazione()
{
chiave.format("%04d%02d", _annoes, m);
lim.put("CODTAB", chiave);
if (lim.read() != NOERR || !lim.get_bool("B0"))
if (lim.read() != NOERR || lim.get_bool("B0"))
need_refresh |= !lim.get_bool("B1");
}
if (need_refresh)
@ -1533,8 +1545,6 @@ int TStampa_registri_app::stampa_acquisti(int row)
void TStampa_registri_app::set_page_tot_reg()
{
int rr = 1;
bool printed = false;
@ -1542,8 +1552,8 @@ void TStampa_registri_app::set_page_tot_reg()
//la riga di riporto
_totali_stampati = true; //siamo in stampa totali, quindi...
_riporti = false; //inoltre non deve stapare riporti mentre stampa i totali
_totdoc_prog = _totimpn_prog = _totimps_prog = ZERO;
_totdoc_prog = _totimpn_prog = _totimps_prog = ZERO;
reset_print();
if (_esiste_riga_iva && _stampa)
{
@ -1629,7 +1639,8 @@ void TStampa_registri_app::set_page_tot_reg()
}
} // for
}
if (printed)
flush();
if (_stampa_plafonds)
stampa_plafonds(rr);
}
@ -2336,8 +2347,10 @@ bool TStampa_registri_app::preprocess_page(int file, int counter)
const bool autof = caus.get_bool(CAU_AUTOFATT);
const bool splitpay = tipocf == 'C' && is_split_payment(mov.curr());
const bool liqdiff = !splitpay && mov.get_bool(MOV_LIQDIFF);
const bool IVAxcassa= !splitpay && !liqdiff && mov.get_bool(MOV_IVAXCASSA);
const bool liqdiff = !splitpay && mov.get_bool(MOV_LIQDIFF) && is_IVA_diff(mov.curr());
const tipo_movimento tm = (tipo_movimento)mov.get_int(MOV_TIPOMOV);
const bool IVAxcassa= !splitpay && !liqdiff && !_isviaggio && tm > tm_nessuno && is_IVAxCassa(mov.curr());
const TString80 descrcau = caus.get(CAU_DESCR);
@ -2459,7 +2472,7 @@ bool TStampa_registri_app::preprocess_page(int file, int counter)
}
}
if (mov.get_bool(MOV_IVAXCASSA) && mov.get_int(MOV_TIPOMOV) <= 0)
if (IVAxcassa && mov.get_int(MOV_TIPOMOV) <= 0)
{
set_row(_r+1, FR(" @b*** IVA PER CASSA SENZA SALDACONTO@r"));
riga = _r+2;
@ -2746,7 +2759,7 @@ print_action TStampa_registri_app::postprocess_page (int file, int counter)
if (_tipo_stampa != prova)
calcola_progressivi();
set_page_tot_reg();
return REPEAT_PAGE;
return NEXT_PAGE;
}
else
{
@ -2762,7 +2775,7 @@ print_action TStampa_registri_app::postprocess_page (int file, int counter)
if (_tipo_stampa != prova)
calcola_progressivi();
set_page_tot_reg();
return REPEAT_PAGE;
return NEXT_PAGE;
}
}
}
@ -3784,6 +3797,7 @@ bool TStampa_registri_app::stampa_registri_IVA(const TMask& m)
_frequiva = riga->get_char(3);
_intesta_liq = false;
_intesta_vidi = false;
_stampa = true;
_primast = _u_stampata;
_ok_vidi = false;
_stampa_mese = 13;
@ -3861,7 +3875,8 @@ bool TStampa_registri_app::stampa_registri_IVA(const TMask& m)
bool one_printed = false; // Flag per vedere se ha stampato almeno un registro (solo per rif. al libro giornale)
for (_tabreg->first(); !_tabreg->eof(); _tabreg->next())
{
_tipo_reg = (tiporeg)_tabreg->get_int("I0");
_stampa = true;
_tipo_reg = (tiporeg)_tabreg->get_int("I0");
const TString16 codtab = _tabreg->get("CODTAB");
const int anno = atoi(codtab.left(4));
if (anno > _annoes)

View File

@ -68,6 +68,7 @@ class TStampa_registri_app : public TPrintapp
TString _cofi,_cap,_paiva,_ragsoc,_comunefis,_provfis,_viafis;
TString _tabname;
TFilename _t;
bool _isviaggio;
messaggio _scelta;
tipo_stampa _tipo_stampa;

View File

@ -214,9 +214,10 @@ bool is_IVAxCassa(const TRectype& mov)
return false;
const TDate data_reg = mov.get(MOV_DATAREG);
const TDate data_doc = mov.get(MOV_DATADOC);
const TDate data_rif = data_doc.ok() && data_doc < data_reg ? data_doc : data_reg;
if (!gestione_IVAxCassa(data_rif))
// const TDate data_doc = mov.get(MOV_DATADOC);
// const TDate data_rif = data_doc.ok() && data_doc < data_reg ? data_doc : data_reg;
// if (!gestione_IVAxCassa(data_rif))
if (!gestione_IVAxCassa(data_reg))
return false;
const TRectype& clifo = cache().get_rec(LF_CLIFO, mov.get(MOV_TIPO), mov.get(MOV_CODCF));