Patch level : 10.0

Files correlati     : cg2.exe
Ricompilazione Demo : [ ]
Commento            :
Corretta decodifica contropartite di saldaconto per GUIMATRAG


git-svn-id: svn://10.65.10.50/branches/R_10_00@22027 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2011-04-26 15:34:21 +00:00
parent ae3a9eb666
commit 599002f415
3 changed files with 44 additions and 11 deletions

View File

@ -894,6 +894,31 @@ bool TPrimanota_application::test_swap(bool ritsoc)
return s;
}
void TPrimanota_application::add_cup_or_cig(short id, const TRectype& rec, TToken_string& riga) const
{
const bool cup = id == CG_CUP;
const TString80 cod = rec.get(cup ? RMV_CUP : RMV_CIG);
if (cod.full())
{
riga.add(cod, id-FIRST_FIELD); // Tipo di riga 115 o 117
const TString& desc = cache().get(cup ? "%CUP" : "%CIG", cod, "S0");
riga.add(desc, (cup ? CG_DCUP : CG_DCIG) - FIRST_FIELD);
}
}
void TPrimanota_application::add_cup_or_cig(short id, TConfig& ini, TToken_string& riga) const
{
const bool cup = id == CG_CUP;
const TString80 cod = ini.get(cup ? RMV_CUP : RMV_CIG);
if (cod.full())
{
riga.add(cod, id-FIRST_FIELD); // Tipo di riga 115 o 117
const TString& desc = cache().get(cup ? "%CUP" : "%CIG", cod, "S0");
riga.add(desc, (cup ? CG_DCUP : CG_DCIG) - FIRST_FIELD);
}
}
int TPrimanota_application::read(TMask& m)
{
m.reset(); // Azzera campi e relativi dirty = 3
@ -946,14 +971,14 @@ int TPrimanota_application::read(TMask& m)
conto.get(r, true);
riga.add(conto.string(0x3)); // Contropartita 110-114
riga.add(r.get(RMV_CUP), CG_CUP-FIRST_FIELD);// Tipo di riga 115
riga.add(r.get(RMV_CIG), CG_CIG-FIRST_FIELD);// Tipo di riga 117
add_cup_or_cig(CG_CUP, r, riga); // CUP 115-116
add_cup_or_cig(CG_CIG, r, riga); // CIG 117-118
const char tipo = r.get_char(RMV_ROWTYPE);
riga.add(tipo, CG_ROWTYPE-FIRST_FIELD); // Tipo di riga 119
disable_cgs_cells(i, tipo);
cgs().check_row(i);
//cgs().check_row(i); // Fare le decodifche a mano: NON USARE!
}
if (_iva == nessuna_iva && is_fattura()) // Ci dovrebbero essere delle scadenze
@ -961,7 +986,7 @@ int TPrimanota_application::read(TMask& m)
pags().reset(); // Azzera sheet rate
if (!read_scadenze(m)) // Se non esiste fattura
{
const TString dd(m.get(F_DATADOC));
const TString16 dd = m.get(F_DATADOC);
set_pagamento(NULL, dd); // Ignora codice pagamento in testata
}
}
@ -1822,11 +1847,11 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query)
ini2bill(ini, conto, true);
if (conto.gruppo() > 0)
conto.add_to(riga, 9, 0x3); // Contropartita 110-114
riga.add(tipo, cg.cid2index(CG_ROWTYPE)); // Tipo di riga 115
riga.add(ini.get(RMV_CUP), cg.cid2index(CG_CUP)); // CUP
riga.add(ini.get(RMV_CIG), cg.cid2index(CG_CIG)); // CIG
add_cup_or_cig(CG_CUP, ini, riga); // CUP 115-116
add_cup_or_cig(CG_CIG, ini, riga); // CIG 117-118
riga.add(tipo, cg.cid2index(CG_ROWTYPE)); // Tipo di riga 119
}
if (is_fattura())

View File

@ -327,7 +327,7 @@ void TPrimanota_application::disable_cgs_cells(int n, char tipo)
break;
first = 2;
case 'I':
last = 7; // Imponibile
last = 7; // Imponibile o contropartita saldaconto
break;
default:
last = 0; // Solo contabile
@ -336,10 +336,15 @@ void TPrimanota_application::disable_cgs_cells(int n, char tipo)
bool needs_update = false;
if (last)
if (last > first)
{
for (int i = first; i < last; i++)
cg.disable_cell(n, i);
if (first == 0)
{
for (short cc = CG_CUP; cc <= CG_DCIG; cc++)
cg.disable_cell(n, cc - FIRST_FIELD);
}
needs_update = true;
}

View File

@ -253,6 +253,9 @@ protected:
bool sub_cgs_imp(int n, const TImporto& importo);
void disable_cgs_cells(int n, char tipo);
void add_cup_or_cig(short id, const TRectype& rec, TToken_string& riga) const;
void add_cup_or_cig(short id, TConfig& ini, TToken_string& riga) const;
void add_cgs_rit(bool fisc);
void generazione_righe_cg(int r);