Patch level :2.2 394
Files correlati :ca3.exe,ca3700.msk Ricompilazione Demo : [ ] Commento :sistemato problema dei campi sovrapposti nella maschera dei conti nel caso si usi il piano dei conti analitico;perfezionata la definizione di piano dei conti riclassificato (da migliorare ulteriormente in seguito); aggiunto un warning non bloccante nel caso si presentino righe documento prive di relativa testata (archivi incasinati di ruffo) git-svn-id: svn://10.65.10.50/trunk@13875 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7acca48b02
commit
cafac20e45
@ -145,20 +145,21 @@ TPrint_rendiconto_ca_mask::TPrint_rendiconto_ca_mask()
|
|||||||
const TMultilevel_code_info& pconana_info = ca_multilevel_code_info(LF_PCONANA);
|
const TMultilevel_code_info& pconana_info = ca_multilevel_code_info(LF_PCONANA);
|
||||||
const int pconana_levels = pconana_info.levels();
|
const int pconana_levels = pconana_info.levels();
|
||||||
|
|
||||||
int pconana_prefix = cfg.get_int("PdcPrefix");
|
int prefix = cfg.get_int("PdcPrefix");
|
||||||
if (pconana_prefix >= pconana_levels)
|
if (prefix >= pconana_levels)
|
||||||
pconana_prefix = pconana_levels-1;
|
prefix = pconana_levels-1;
|
||||||
|
|
||||||
|
//setta nel campo F_PIANO il tipo di piano dei conti usato in base alla configurazione..
|
||||||
|
//..e disabilita il campo (non si puo' cambiare la configurazione in una stampa!!)
|
||||||
disable(F_PIANO);
|
disable(F_PIANO);
|
||||||
set(F_PIANO, use_pdcc ? "C" : "A");
|
set(F_PIANO, use_pdcc ? "C" : "A");
|
||||||
|
|
||||||
// Controllo se voglio (e posso) usare il conto analitico come prefisso di quello contabile
|
// Controllo se voglio (e posso) usare il conto analitico come prefisso di quello contabile
|
||||||
const int pref = cfg.get_int("PdcPrefix");
|
if (use_pdcc && prefix > 0)
|
||||||
if (use_pdcc && pref > 0)
|
|
||||||
{
|
{
|
||||||
const TMultilevel_code_info& info = ca_multilevel_code_info(LF_PCONANA);
|
const TMultilevel_code_info& info = ca_multilevel_code_info(LF_PCONANA);
|
||||||
const int levels = info.levels();
|
const int levels = info.levels();
|
||||||
if (levels >= 2 && pref < levels && esistono_riclassificazioni())
|
if (levels >= 2 && prefix < levels && esistono_riclassificazioni())
|
||||||
{
|
{
|
||||||
enable(F_PIANO);
|
enable(F_PIANO);
|
||||||
ca_create_fields(*this, 1, LF_PCONANA, 2, 4, F_PRE1, F_PREDES1, 0x0, PCONANA_CODCONTO);
|
ca_create_fields(*this, 1, LF_PCONANA, 2, 4, F_PRE1, F_PREDES1, 0x0, PCONANA_CODCONTO);
|
||||||
@ -166,7 +167,7 @@ TPrint_rendiconto_ca_mask::TPrint_rendiconto_ca_mask()
|
|||||||
// Nascondi i campi che non fanno parte del prefisso
|
// Nascondi i campi che non fanno parte del prefisso
|
||||||
for (int i = 0; i < levels; i++)
|
for (int i = 0; i < levels; i++)
|
||||||
{
|
{
|
||||||
if (i < pref)
|
if (i < prefix)
|
||||||
{
|
{
|
||||||
field(F_PRE1 + i).check_type(CHECK_REQUIRED);
|
field(F_PRE1 + i).check_type(CHECK_REQUIRED);
|
||||||
field(F_PRE1 + i).set_group(6);
|
field(F_PRE1 + i).set_group(6);
|
||||||
@ -233,7 +234,7 @@ class TPrint_rendiconto_ca_recordset : public TISAM_recordset
|
|||||||
{
|
{
|
||||||
TExternisamfile* _tmp;
|
TExternisamfile* _tmp;
|
||||||
bool _riclassificato;
|
bool _riclassificato;
|
||||||
TString _prefix, _da_conto_riclas, _a_conto_riclas;
|
TString _prefix;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int _anno;
|
int _anno;
|
||||||
@ -279,18 +280,11 @@ void TPrint_rendiconto_ca_recordset::set_custom_filter(TCursor& cur) const
|
|||||||
TRectype darec(cur.curr()), arec(cur.curr()); //curr perchè è il file externisamfile
|
TRectype darec(cur.curr()), arec(cur.curr()); //curr perchè è il file externisamfile
|
||||||
darec.zero();
|
darec.zero();
|
||||||
arec.zero();
|
arec.zero();
|
||||||
if (!_riclassificato)
|
|
||||||
{
|
|
||||||
if (_daconto.not_empty())
|
if (_daconto.not_empty())
|
||||||
darec.put("CONTO", _daconto);
|
darec.put("CONTO", _daconto);
|
||||||
if (_aconto.not_empty())
|
if (_aconto.not_empty())
|
||||||
arec.put("CONTO", _aconto);
|
arec.put("CONTO", _aconto);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
darec.put("CONTO", _da_conto_riclas);
|
|
||||||
arec.put("CONTO", _a_conto_riclas);
|
|
||||||
}
|
|
||||||
|
|
||||||
//filtro sulla data(non avendo anche codnum non ho la chiave completa per mettere la data nella setregion)
|
//filtro sulla data(non avendo anche codnum non ho la chiave completa per mettere la data nella setregion)
|
||||||
TString filtro;
|
TString filtro;
|
||||||
@ -374,19 +368,13 @@ const TVariant& TPrint_rendiconto_ca_recordset::get(const char* column_name) con
|
|||||||
if (strcmp(column_name, "#DACONTO") == 0)
|
if (strcmp(column_name, "#DACONTO") == 0)
|
||||||
{
|
{
|
||||||
TVariant& var = get_tmp_var();
|
TVariant& var = get_tmp_var();
|
||||||
if (!_riclassificato)
|
|
||||||
var = _daconto;
|
var = _daconto;
|
||||||
else
|
|
||||||
var = _da_conto_riclas;
|
|
||||||
return var;
|
return var;
|
||||||
}
|
}
|
||||||
if (strcmp(column_name, "#ACONTO") == 0)
|
if (strcmp(column_name, "#ACONTO") == 0)
|
||||||
{
|
{
|
||||||
TVariant& var = get_tmp_var();
|
TVariant& var = get_tmp_var();
|
||||||
if (!_riclassificato)
|
|
||||||
var = _aconto;
|
var = _aconto;
|
||||||
else
|
|
||||||
var = _a_conto_riclas;
|
|
||||||
return var;
|
return var;
|
||||||
}
|
}
|
||||||
//cerca l'indicatore di bilancio del conto;utilizzato per stabilire il campo ove sommare..
|
//cerca l'indicatore di bilancio del conto;utilizzato per stabilire il campo ove sommare..
|
||||||
@ -482,8 +470,8 @@ void TPrint_rendiconto_ca_recordset::scrive_riga(const TRectype& rmovana, const
|
|||||||
//ATTENZIONE! Se era stata operata una selezione sui conti riclassificati nella maschera
|
//ATTENZIONE! Se era stata operata una selezione sui conti riclassificati nella maschera
|
||||||
//ed il conto riclassificato attuale non ricade nell'intervallo selezionato il programma
|
//ed il conto riclassificato attuale non ricade nell'intervallo selezionato il programma
|
||||||
//non deve aggiungere il record al file!!
|
//non deve aggiungere il record al file!!
|
||||||
if ((_da_conto_riclas.not_empty() && conto_riclassificato < _da_conto_riclas) ||
|
if ((_daconto.not_empty() && conto_riclassificato < _daconto) ||
|
||||||
(_a_conto_riclas.not_empty() && conto_riclassificato.compare(_a_conto_riclas, _a_conto_riclas.len()) > 0))
|
(_aconto.not_empty() && conto_riclassificato.compare(_aconto, _aconto.len()) > 0))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
} //if(_riclassificato)
|
} //if(_riclassificato)
|
||||||
@ -866,7 +854,11 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(const TPrint_rendiconto_
|
|||||||
if (pi.iscancelled())
|
if (pi.iscancelled())
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
//La riga esaminata deve avere una testata valida!!!!Se la testata non esiste va saltata..
|
||||||
|
//..la riga
|
||||||
const TRectype& curr_doc = cur_rdoc.curr(LF_DOC);
|
const TRectype& curr_doc = cur_rdoc.curr(LF_DOC);
|
||||||
|
if (!curr_doc.empty())
|
||||||
|
{
|
||||||
//controlla se il documento cui appartiene la rigadoc e' stato contabilizzato;
|
//controlla se il documento cui appartiene la rigadoc e' stato contabilizzato;
|
||||||
//se e' stato contabilizzato lo salta in quanto la riga documento apparira' attraverso le righe
|
//se e' stato contabilizzato lo salta in quanto la riga documento apparira' attraverso le righe
|
||||||
//dei movimenti di analitica
|
//dei movimenti di analitica
|
||||||
@ -906,6 +898,19 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(const TPrint_rendiconto_
|
|||||||
scrive_riga(rmov, mov, &doc);
|
scrive_riga(rmov, mov, &doc);
|
||||||
} //for int j...
|
} //for int j...
|
||||||
} //if numregca
|
} //if numregca
|
||||||
|
} //if !curr_doc.empty()
|
||||||
|
//Ha trovato una riga senza testata! non puo' considerarla ma avverte l'utente del problema
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const TRectype& bad_row = cur_rdoc.curr();
|
||||||
|
const TString4 bad_codnum = bad_row.get(RDOC_CODNUM);
|
||||||
|
const int bad_anno = bad_row.get_int(RDOC_ANNO);
|
||||||
|
const long bad_ndoc = bad_row.get_long(RDOC_NDOC);
|
||||||
|
const int bad_nriga = bad_row.get_int(RDOC_NRIGA);
|
||||||
|
TString error_string;
|
||||||
|
error_string << bad_codnum << "|" << bad_anno << "|D|" << bad_ndoc << "|" << bad_nriga;
|
||||||
|
warning_box("Riga documento %s priva di testata!", (const char*)error_string);
|
||||||
|
}
|
||||||
} //for cur_rdoc..
|
} //for cur_rdoc..
|
||||||
} //if rdoc_items
|
} //if rdoc_items
|
||||||
|
|
||||||
@ -980,27 +985,18 @@ void TPrint_rendiconto_ca_recordset::set_filter(const TPrint_rendiconto_ca_mask&
|
|||||||
|
|
||||||
//si utilizza la riclassificazione dei conti?
|
//si utilizza la riclassificazione dei conti?
|
||||||
if (msk.get(F_PIANO) == "A")
|
if (msk.get(F_PIANO) == "A")
|
||||||
_riclassificato = true;
|
{
|
||||||
|
TLocalisamfile panapdc(LF_PANAPDC);
|
||||||
|
_riclassificato = panapdc.first() == NOERR;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
_riclassificato = false;
|
_riclassificato = false;
|
||||||
|
|
||||||
//conti non riclassificati
|
|
||||||
if (!_riclassificato)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < 4 && msk.id2pos(dlg_da+i) > 0; i++)
|
for (int i = 0; i < 4 && msk.id2pos(dlg_da+i) > 0; i++)
|
||||||
{
|
{
|
||||||
_daconto << msk.get(dlg_da+i);
|
_daconto << msk.get(dlg_da+i);
|
||||||
_aconto << msk.get(dlg_al+i);
|
_aconto << msk.get(dlg_al+i);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else //conti riclassificati
|
|
||||||
{
|
|
||||||
for (int i = 0; i < 4 && msk.id2pos(dlg_da+i) > 0; i++)
|
|
||||||
{
|
|
||||||
_da_conto_riclas << msk.get(dlg_da+i);
|
|
||||||
_a_conto_riclas << msk.get(dlg_al+i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
_dadata = msk.get_date(F_DATAINI);
|
_dadata = msk.get_date(F_DATAINI);
|
||||||
_adata = msk.get_date(F_DATAFIN);
|
_adata = msk.get_date(F_DATAFIN);
|
||||||
|
@ -109,6 +109,7 @@ BEGIN
|
|||||||
MESSAGE HIDE,5@|SHOW,6@
|
MESSAGE HIDE,5@|SHOW,6@
|
||||||
ITEM "C|Contabile"
|
ITEM "C|Contabile"
|
||||||
MESSAGE HIDE,6@|SHOW,5@
|
MESSAGE HIDE,6@|SHOW,5@
|
||||||
|
FLAGS "G"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX F_PRE0 76 6
|
GROUPBOX F_PRE0 76 6
|
||||||
|
Loading…
x
Reference in New Issue
Block a user