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; 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) int TPrimanota_application::read(TMask& m)
{ {
m.reset(); // Azzera campi e relativi dirty = 3 m.reset(); // Azzera campi e relativi dirty = 3
@ -946,14 +971,14 @@ int TPrimanota_application::read(TMask& m)
conto.get(r, true); conto.get(r, true);
riga.add(conto.string(0x3)); // Contropartita 110-114 riga.add(conto.string(0x3)); // Contropartita 110-114
riga.add(r.get(RMV_CUP), CG_CUP-FIRST_FIELD);// Tipo di riga 115 add_cup_or_cig(CG_CUP, r, riga); // CUP 115-116
riga.add(r.get(RMV_CIG), CG_CIG-FIRST_FIELD);// Tipo di riga 117 add_cup_or_cig(CG_CIG, r, riga); // CIG 117-118
const char tipo = r.get_char(RMV_ROWTYPE); const char tipo = r.get_char(RMV_ROWTYPE);
riga.add(tipo, CG_ROWTYPE-FIRST_FIELD); // Tipo di riga 119 riga.add(tipo, CG_ROWTYPE-FIRST_FIELD); // Tipo di riga 119
disable_cgs_cells(i, tipo); 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 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 pags().reset(); // Azzera sheet rate
if (!read_scadenze(m)) // Se non esiste fattura 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 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); ini2bill(ini, conto, true);
if (conto.gruppo() > 0) if (conto.gruppo() > 0)
conto.add_to(riga, 9, 0x3); // Contropartita 110-114 conto.add_to(riga, 9, 0x3); // Contropartita 110-114
add_cup_or_cig(CG_CUP, ini, riga); // CUP 115-116
riga.add(tipo, cg.cid2index(CG_ROWTYPE)); // Tipo di riga 115 add_cup_or_cig(CG_CIG, ini, riga); // CIG 117-118
riga.add(ini.get(RMV_CUP), cg.cid2index(CG_CUP)); // CUP
riga.add(ini.get(RMV_CIG), cg.cid2index(CG_CIG)); // CIG riga.add(tipo, cg.cid2index(CG_ROWTYPE)); // Tipo di riga 119
} }
if (is_fattura()) if (is_fattura())

View File

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

View File

@ -253,6 +253,9 @@ protected:
bool sub_cgs_imp(int n, const TImporto& importo); bool sub_cgs_imp(int n, const TImporto& importo);
void disable_cgs_cells(int n, char tipo); 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 add_cgs_rit(bool fisc);
void generazione_righe_cg(int r); void generazione_righe_cg(int r);