Patch level :
Files correlati : fe0.exe fe0100a.uml Ricompilazione Demo : [ ] Commento : Correzioni varie git-svn-id: svn://10.65.10.50/branches/R_10_00@22466 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
ccbcb4cee3
commit
df2381572b
@ -267,6 +267,7 @@ class TAnagrafica : public TObject
|
||||
TString16 _cofi, _paiv;
|
||||
TString _ragsoc;
|
||||
TString4 _com_nasc, _com_res;
|
||||
TString _loc_res;
|
||||
TDate _data_nasc;
|
||||
int _allegato, _stato_estero;
|
||||
|
||||
@ -292,6 +293,7 @@ public:
|
||||
const TString& provincia_nascita() const { return provincia_di(_com_nasc); }
|
||||
const TString& comune_residenza() const { return comune_di(_com_res); }
|
||||
const TString& provincia_residenza() const { return provincia_di(_com_res); }
|
||||
const TString& localita_residenza() const { return _loc_res; }
|
||||
|
||||
bool init(const TRectype& rec);
|
||||
bool init(int num, const TString& codice) { return init(cache().get(num, codice)); }
|
||||
@ -333,6 +335,7 @@ bool TAnagrafica::init(const TRectype& rec)
|
||||
_data_nasc = rec.get(OCC_DNASC);
|
||||
_com_nasc = rec.get(OCC_COMNASC);
|
||||
_com_res = rec.get(OCC_COM);
|
||||
_loc_res = rec.get(OCC_LOCALITA);
|
||||
_stato_estero = rec.get_int(OCC_STATO);
|
||||
_allegato = _paiv.blank() ? 6 : 2;
|
||||
break;
|
||||
@ -367,7 +370,13 @@ bool TAnagrafica::init(const TRectype& rec)
|
||||
case LF_CLIFO:
|
||||
_tipo = rec.get_char(CLI_TIPOAPER);
|
||||
if (_tipo == 'F')
|
||||
{
|
||||
init(LF_ANAG, _tipo, rec.get_long(CLI_CODANAGPER));
|
||||
if (rec.get(CLI_COMNASC).not_empty())
|
||||
_com_nasc = rec.get(CLI_COMNASC);
|
||||
if (rec.get(CLI_DATANASC).not_empty())
|
||||
_data_nasc = rec.get(CLI_DATANASC);
|
||||
}
|
||||
else
|
||||
_tipo = 'G';
|
||||
// Assegno codice fiscale e partita IVA se validi, altrimenti mantengo quelli dell'anagrafica
|
||||
@ -379,6 +388,7 @@ bool TAnagrafica::init(const TRectype& rec)
|
||||
_ragsoc = rec.get(CLI_RAGSOC); _ragsoc.upper();
|
||||
_stato_estero = rec.get_int(CLI_STATOCF);
|
||||
_allegato = rec.get_int(CLI_ALLEG);
|
||||
_loc_res = rec.get(CLI_LOCCF);
|
||||
break;
|
||||
case LF_MOV:
|
||||
return init(rec.get_char(MOV_TIPO), rec.get_long(MOV_CODCF), rec.get(MOV_OCFPI));
|
||||
@ -870,13 +880,14 @@ protected:
|
||||
TRecnotype last_user_progr() const;
|
||||
TRecnotype nuovo_progr() const;
|
||||
bool check_rows(bool show_error);
|
||||
void enable_buttons();
|
||||
|
||||
bool send_rec(const TRectype& alleg, TDati_rilevanti_set& operaz);
|
||||
TExclusion_mode segnala_movimento(const TRectype& mov, TExclusion_mode motivo);
|
||||
|
||||
bool fattura_associata(long numreg_var, TDate& datafatt, TString& numdoc) const;
|
||||
bool controlla_mov(TRectype& mrec) const;
|
||||
bool azzera_alleg(int anno, TAssoc_array& manuali) const;
|
||||
bool azzera_alleg(TAssoc_array& manuali) const;
|
||||
void collega_variazioni() const;
|
||||
|
||||
public:
|
||||
@ -1155,8 +1166,6 @@ bool TDati_rilevanti_msk::controlla_mov(TRectype& mrec) const
|
||||
if (contratto.full())
|
||||
{
|
||||
const TContratto c(mrec);
|
||||
if (c.codice() == "3")
|
||||
int pippo = 1;
|
||||
new_modpag = c.modalita_pagamento();
|
||||
}
|
||||
if (get(MOV_NUMRETT).full() || get(MOV_DATARETT).full())
|
||||
@ -1183,8 +1192,11 @@ bool TDati_rilevanti_msk::controlla_mov(TRectype& mrec) const
|
||||
return update;
|
||||
}
|
||||
|
||||
bool TDati_rilevanti_msk::azzera_alleg(int anno, TAssoc_array& manuali) const
|
||||
bool TDati_rilevanti_msk::azzera_alleg(TAssoc_array& manuali) const
|
||||
{
|
||||
const int anno = get_int(F_ANNO);
|
||||
const TDate data = get(F_DATA);
|
||||
|
||||
TFast_isamfile fast_alleg(LF_ALLEG);
|
||||
TFast_isamfile fast_mov(LF_MOV);
|
||||
|
||||
@ -1211,17 +1223,21 @@ bool TDati_rilevanti_msk::azzera_alleg(int anno, TAssoc_array& manuali) const
|
||||
|
||||
const long progr = arec.get_long(ALL_PROGR);
|
||||
const long numreg = mrec.get_long(MOV_NUMREG);
|
||||
const TDate datareg = mrec.get_long(MOV_DATAREG);
|
||||
const int annoiva = mrec.get_long(MOV_ANNOIVA);
|
||||
|
||||
const bool kill = numreg != progr || annoiva < anno; // Riga generata dalla vecchia versione
|
||||
bool kill = numreg != progr || annoiva < 2010;
|
||||
if (!kill)
|
||||
{
|
||||
const bool forzata = alleg.get(ALL_FORZATURA).as_bool();
|
||||
if (forzata)
|
||||
manuali.add(arec.get(ALL_PROGR));
|
||||
else
|
||||
kill = annoiva == data.year() && datareg > data;
|
||||
|
||||
}
|
||||
else
|
||||
falleg.remove();
|
||||
if (kill)
|
||||
falleg.remove(); // Riga generata dalla vecchia versione
|
||||
}
|
||||
return !manuali.empty();
|
||||
}
|
||||
@ -1298,7 +1314,7 @@ TRecnotype TDati_rilevanti_msk::genera_alleg()
|
||||
_log = new TLog_report(str_pi);
|
||||
|
||||
TAssoc_array manuali;
|
||||
azzera_alleg(anno, manuali);
|
||||
azzera_alleg(manuali);
|
||||
|
||||
TRecnotype nprog = 1;
|
||||
|
||||
@ -1308,7 +1324,7 @@ TRecnotype TDati_rilevanti_msk::genera_alleg()
|
||||
TFast_isamfile fmov(LF_MOV);
|
||||
|
||||
TString query;
|
||||
query << "USE MOV KEY 3 SELECT BETWEEN(DATAREG," << anno << "0101," << get_date(F_DATA).date2ansi() << ")"
|
||||
query << "USE MOV KEY 3 SELECT BETWEEN(DATAREG," << anno << "0101," << data_estrazione.date2ansi() << ")"
|
||||
<< "\nFROM TIPO=C\nTO TIPO=F";
|
||||
TISAM_recordset mov(query);
|
||||
TRectype& mov_rec = mov.cursor()->curr();
|
||||
@ -1496,7 +1512,10 @@ bool TDati_rilevanti_msk::send_fatt(const TRectype& alleg, TDati_rilevanti_set&
|
||||
else
|
||||
{
|
||||
operaz.set(8, anag.ragione_sociale());
|
||||
operaz.set(9, anag.comune_residenza());
|
||||
if (anag.comune_residenza().empty())
|
||||
operaz.set(9, anag.localita_residenza());
|
||||
else
|
||||
operaz.set(9, anag.comune_residenza());
|
||||
operaz.set(10, anag.stato_estero());
|
||||
operaz.set(11, EMPTY_STRING); // TBI? Indirizzo estero
|
||||
}
|
||||
@ -1828,6 +1847,7 @@ void TDati_rilevanti_msk::load_sheet()
|
||||
_mode = MODE_QUERY;
|
||||
enable(-1);
|
||||
}
|
||||
enable_buttons();
|
||||
}
|
||||
|
||||
bool TDati_rilevanti_msk::save_sheet()
|
||||
@ -1915,6 +1935,32 @@ bool TDati_rilevanti_msk::save_if_dirty()
|
||||
return done;
|
||||
}
|
||||
|
||||
void TDati_rilevanti_msk::enable_buttons()
|
||||
{
|
||||
const int anno = get_int(F_ANNO);
|
||||
const bool good_year = anno >= 2010;
|
||||
const bool def = get_bool(F_DEFINITIVO);
|
||||
const bool full_rows = !sfield(F_RIGHE).empty();
|
||||
|
||||
bool one_sent = false; // Ho spedito almeno un movimento in definitivo
|
||||
if (good_year)
|
||||
{
|
||||
TString query;
|
||||
query << "USE MOV KEY 2 SELECT ANNOFE=" << anno;
|
||||
query << "\nFROM DATAREG=01-01-" << anno;
|
||||
TISAM_recordset recset(query);
|
||||
one_sent = recset.move_first();
|
||||
}
|
||||
|
||||
enable(DLG_CANCEL, full_rows);
|
||||
enable(DLG_EXPORT, full_rows);
|
||||
enable(DLG_RECALC, !full_rows && good_year && !one_sent);
|
||||
enable(DLG_ELABORA, good_year && !(one_sent && def));
|
||||
enable(DLG_DELREC, one_sent);
|
||||
enable(F_DEFINITIVO, !def);
|
||||
if (def) reset(F_DEFINITIVO);
|
||||
}
|
||||
|
||||
bool TDati_rilevanti_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
@ -1937,6 +1983,7 @@ bool TDati_rilevanti_msk::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
s.force_update();
|
||||
_mode = MODE_QUERY;
|
||||
enable(-1);
|
||||
enable_buttons();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -1945,6 +1992,10 @@ bool TDati_rilevanti_msk::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
if (e == fe_button)
|
||||
save_if_dirty();
|
||||
break;
|
||||
case DLG_EXPORT:
|
||||
if (e == fe_button)
|
||||
return sfield(F_RIGHE).esporta();
|
||||
break;
|
||||
case DLG_RECALC:
|
||||
if (e == fe_button && check_fields())
|
||||
{
|
||||
@ -1954,12 +2005,16 @@ bool TDati_rilevanti_msk::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
break;
|
||||
case DLG_ELABORA:
|
||||
if (e == fe_button && check_fields())
|
||||
{
|
||||
send_alleg();
|
||||
enable_buttons(); // Disabilita bottone se definitivo
|
||||
}
|
||||
break;
|
||||
case DLG_DELREC:
|
||||
if (e == fe_button)
|
||||
{
|
||||
recall_alleg();
|
||||
enable_buttons(); // Disabilita bottone
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
@ -1978,18 +2033,7 @@ bool TDati_rilevanti_msk::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
d = TDate(30,4,anno+1);
|
||||
set(F_DATA, d);
|
||||
}
|
||||
|
||||
bool one_sent = false;
|
||||
if (anno >= 2010)
|
||||
{
|
||||
// Abilita azzeramento FE se necessario
|
||||
TString query;
|
||||
query << "USE MOV KEY 2 SELECT ANNOFE=" << anno;
|
||||
query << "\nFROM DATAREG=01-01-" << anno;
|
||||
TISAM_recordset movfe(query);
|
||||
one_sent = movfe.move_first();
|
||||
}
|
||||
enable(DLG_DELREC, one_sent);
|
||||
enable_buttons();
|
||||
}
|
||||
break;
|
||||
case F_OUTFOLDER:
|
||||
@ -2029,10 +2073,6 @@ bool TDati_rilevanti_msk::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
if (e == se_query_del)
|
||||
return false;
|
||||
break;
|
||||
case DLG_EXPORT:
|
||||
if (e == fe_button)
|
||||
return sfield(F_RIGHE).esporta();
|
||||
break;
|
||||
case A_CODCF:
|
||||
case A_OCFPI:
|
||||
if (e == fe_modify || (e == fe_init && !o.empty()))
|
||||
|
@ -28,7 +28,6 @@ BUTTON DLG_RECALC 2 2
|
||||
BEGIN
|
||||
PROMPT 1 3 "Ricalcola"
|
||||
PICTURE TOOL_RECALC
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BUTTON DLG_EXPORT 2 2
|
||||
@ -177,7 +176,7 @@ PAGE "Opzioni" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 6
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bP[zioni per invio"
|
||||
PROMPT 1 1 "@bOpzioni per invio"
|
||||
END
|
||||
|
||||
LIST F_SENDALL 1 25
|
||||
|
Loading…
x
Reference in New Issue
Block a user