Patch level : 10.0 NO PATCH

Files correlati     : pd6342 pd6342a.msk
Ricompilazione Demo : [ ]
Commento            :
Crea movimenti di quadratura


git-svn-id: svn://10.65.10.50/branches/R_10_00@20961 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2010-10-07 09:47:35 +00:00
parent d8bb68b774
commit 2efdfb0034
4 changed files with 105 additions and 26 deletions

View File

@ -171,8 +171,12 @@ void TImporta_da_BCS_app::genera_movana(const TFilename& file)
{
if (!pi.addstatus(1))
break;
const int anno = recset.get("ANNO").as_int();
if(anno <= 0)
continue;
const int mese = recset.get("MESE").as_int();
const int giorno = recset.get("GIORNO").as_int();
const TDate data(recset.get("GIORNO").as_int(), recset.get("MESE").as_int(), anno);

View File

@ -73,7 +73,7 @@ void TQuadra_movana_msk::costruisci_sheet(TSheet_field& s, const short dlg)
int sy = 3;
short sdlg = dlg;
_scdc_sid = _scdc_lid = _scms_sid = _scms_lid = _sfase_sid = _sfase_lid = _sconto_sid = _sconto_lid-1;
_scdc_sid = _scdc_lid = _scms_sid = _scms_lid = _sfase_sid = _sfase_lid = _sconto_sid = _sconto_lid = -1;
for (int i = 0; i < 2; i++)
{
@ -158,14 +158,15 @@ void TQuadra_movana_msk::costruisci_sheet(TSheet_field& s, const short dlg)
void TQuadra_movana_msk::get_row_anal_fields(TToken_string& row, TString& cdc, TString& cms, TString& fase, TString& codconto, const short sdlg)
{
TMask& m = sfield(sdlg).sheet_mask();
TSheet_field& sheet = sfield(sdlg);
TMask& m = sheet.sheet_mask();
TString val;
cdc.cut(0);
if (_scdc_sid >= 0)
for ( short id = _scdc_sid; id <= _scdc_lid; id++)
{
val = m.get(id);
val = row.get(sheet.cid2index(id));
val.rpad(m.field(id).size());
cdc << val;
}
@ -174,7 +175,7 @@ void TQuadra_movana_msk::get_row_anal_fields(TToken_string& row, TString& cdc, T
if (_scms_sid >= 0)
for ( short id = _scms_sid; id <= _scms_lid; id++)
{
val = m.get(id);
val = row.get(sheet.cid2index(id));
val.rpad(m.field(id).size());
cms << val;
}
@ -183,7 +184,7 @@ void TQuadra_movana_msk::get_row_anal_fields(TToken_string& row, TString& cdc, T
if (_sfase_sid >= 0)
for ( short id = _sfase_sid; id <= _sfase_lid; id++)
{
val = m.get(id);
val = row.get(sheet.cid2index(id));
val.rpad(m.field(id).size());
fase << val;
}
@ -192,7 +193,7 @@ void TQuadra_movana_msk::get_row_anal_fields(TToken_string& row, TString& cdc, T
if (_sconto_sid >= 0)
for ( short id = _sconto_sid; id <= _sconto_lid; id++)
{
val = m.get(id);
val = row.get(sheet.cid2index(id));
val.rpad(m.field(id).size());
codconto << val;
}
@ -349,7 +350,7 @@ void TQuadra_movana_msk::riempi_sheets()
rrow.add(datacomp, rs.cid2index(Q_DATACOMP));
put_row_anal_fields(rrow, codcosto, codcms, codfase, codconto, F_MOVQUAD);
if(descrizione == "Riga quadratura")
if(descrizione == "Riga di quadratura")
rs.disable_row(r - 1);
}
}
@ -370,7 +371,6 @@ void TQuadra_movana_msk::sposta_a_destra()
rrow = lrow;
ls.destroy(ls.selected());
ls.force_update();
rs.force_update();
calcola_totale(rs);
@ -388,7 +388,6 @@ void TQuadra_movana_msk::sposta_a_sinistra()
rs.destroy(rs.selected());
ls.force_update();
rs.force_update();
calcola_totale(rs);
}
@ -441,11 +440,17 @@ void TQuadra_movana_msk::crea_riga_quadratura()
TQuadra_movana_msk::TQuadra_movana_msk() : TAutomask("pd6342400a")
{
disable(DLG_CERCA);
const TDate data(TODAY);
const TDate primo(1, 1, data.year());
set(F_DADATA, primo);
TConfig& cfg = ca_config();
const bool use_pdcc = cfg.get_bool("UsePdcc");
const int logicnum = use_pdcc ? LF_PCON : LF_PCONANA;
const int nfields = ca_create_fields_compact(*this, 0, logicnum, 2, 6, F_CDC1, F_CDCD1);
const int nfields = ca_create_fields_compact(*this, 0, logicnum, 2, 6, F_CDC1, F_CDC1 + 50);
for (int i = 0; i < nfields; i++)
{
@ -491,26 +496,29 @@ void TQuadra_movana_msk::registra()
rs.sort(sort_by_numreg);
rs.force_update();
long numregold = 0L;
long numregold = -1;
TLocalisamfile file(LF_MOVANA);
TAnal_mov movana(0);
FOR_EACH_SHEET_ROW(rs, r, riga)
{
TToken_string& row = *(TToken_string*)riga;
TString80 descr = row.get(rs.cid2index(Q_DESCR));
if(descr == "Riga di quadratura")
continue;
if(numregold < row.get_long(rs.cid2index(Q_NUMREG)))
if(numregold < 0L)
movana.read(row.get_long(rs.cid2index(Q_NUMREG)));
else if(numregold < row.get_long(rs.cid2index(Q_NUMREG)))
{
if(!movana.empty())
{
movana.rewrite_write(file);
movana.zero();
movana.read(row.get_long(rs.cid2index(Q_NUMREG)));
}
movana.destroy_row(row.get_long(rs.cid2index(Q_NUMRIGA)), true);
}
movana.rewrite_write(file);
movana.zero();
movana.read(row.get_long(rs.cid2index(Q_NUMREG)));
}
movana.destroy_row(row.get_long(rs.cid2index(Q_NUMRIGA)), true);
}
movana.rewrite_write(file);
movana.rewrite_write(file);
const TDate oggi(TODAY);
@ -523,8 +531,36 @@ void TQuadra_movana_msk::registra()
TImporto totale;
FOR_EACH_SHEET_ROW(rs, r1, riga1)
{
TToken_string& r = *(TToken_string*)riga1;
TImporto importo;
importo = r;
TRectype& rmovana = movana.new_row();
TString80 cdc;
TString80 cms;
TString80 fase;
TString80 conto;
get_row_anal_fields(r, cdc, cms, fase, conto, F_MOVQUAD);
rmovana.put(RMOVANA_ANNOES, oggi.year());
rmovana.put(RMOVANA_SEZIONE, importo.sezione());
rmovana.put(RMOVANA_IMPORTO, importo.valore());
rmovana.put(RMOVANA_DESCR, r.get(rs.cid2index(Q_DESCR)));
rmovana.put(RMOVANA_CODCCOSTO, cdc);
rmovana.put(RMOVANA_CODCMS, cms);
rmovana.put(RMOVANA_CODFASE, fase);
rmovana.put(RMOVANA_CODCONTO, conto);
rmovana.put(RMOVANA_ANNOES, oggi.year());
rmovana.put(RMOVANA_DATACOMP, oggi);
totale += importo;
}
movana.put(MOVANA_SEZIONE, totale.sezione());
movana.put(MOVANA_TOTDOC, totale.valore());
movana.write(file);
}
bool TQuadra_movana_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
@ -551,6 +587,26 @@ bool TQuadra_movana_msk::on_field_event(TOperable_field& o, TField_event e, long
registra();
return false;
}
break;
case DLG_ANNULLA:
if(e == fe_button)
{
reset(F_DADATA);
reset(F_ADATA);
reset(F_NUMREGCG);
reset(F_DESREGCG);
reset(F_TOTDOC);
reset(F_TOTRIGHE);
TSheet_field& ls = sfield(F_MOVNNQUAD);
ls.destroy();
ls.force_update();
TSheet_field& rs = sfield(F_MOVQUAD);
rs.destroy();
rs.force_update();
}
break;
case DLG_USER:
if(e == fe_button)
{
@ -563,6 +619,19 @@ bool TQuadra_movana_msk::on_field_event(TOperable_field& o, TField_event e, long
return false;
}
break;
case F_NUMREGCG:
if(e == fe_modify)
{
int cazzone = get_int(F_NUMREGCG);
if(get(F_NUMREGCG).full())
enable(DLG_CERCA);
else
{
disable(DLG_CERCA);
reset(F_NUMREGCG);
}
}
break;
case F_MOVNNQUAD:
case F_MOVQUAD:
if(e == se_query_add)

View File

@ -9,15 +9,12 @@
#define F_CDC2 208
#define F_CDC3 209
#define F_CDC4 210
#define F_CDCD1 257
#define F_CDCD2 258
#define F_CDCD3 259
#define F_CDCD4 260
#define F_MOVNNQUAD 211
#define F_MOVQUAD 212
#define DLG_CERCA 801
#define DLG_SALVA 802
#define DLG_ANNULLA 803
#define NQ_DARE 101
#define NQ_AVERE 102

View File

@ -14,6 +14,12 @@ BEGIN
PICTURE TOOL_SAVEREC
END
BUTTON DLG_ANNULLA
BEGIN
PROMPT 1 1 "Annulla"
PICTURE TOOL_CANCEL
END
#include <elabar.h>
ENDPAGE
@ -28,11 +34,14 @@ END
DATE F_DADATA
BEGIN
PROMPT 2 1 "Considera i movimenti dal "
CHECKTYPE REQUIRED
END
DATE F_ADATA
BEGIN
PROMPT 42 1 "al "
FLAGS "A"
CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 78 5