Patch level : 12.0 846
Files correlati : cg2.exe cg2FPPRO.msk Commento : - Sistemate larghezze colonne maschera fppro - Sistemato ordinamento fatture sdi - Corretti problemi dovuti al caricamento delle righe di scad e delle ritenute: non faceva i calcoli automatici e dava errore in salvataggio
This commit is contained in:
parent
2be681a379
commit
6a67a022ce
@ -1483,11 +1483,12 @@ int TPrimanota_application::controlli_f1(const TMask& m)
|
|||||||
const TDate data_documento(m.get(F_DATADOC));
|
const TDate data_documento(m.get(F_DATADOC));
|
||||||
TString msg; msg << "Attenzione il documento " << data_documento.year() << " / " << m.get(F_NUMDOCEXT) <<
|
TString msg; msg << "Attenzione il documento " << data_documento.year() << " / " << m.get(F_NUMDOCEXT) <<
|
||||||
" appena registrato e' gia' stato inserito con la registrazione numero " << numreg <<
|
" appena registrato e' gia' stato inserito con la registrazione numero " << numreg <<
|
||||||
"\nSe si vuole registrare questo documento in ingresso, scollegarlo prima dalla precedente registrazione.";
|
"\nSe si vuole registrare questo documento elettronico, scollegarlo prima dalla precedente registrazione.";
|
||||||
error_box(msg);
|
error_box(msg);
|
||||||
return pro_numreg_err;
|
return pro_numreg_err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//app().curr_mask().set(FS_RECALC, "");
|
||||||
return pro_noerr;
|
return pro_noerr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2321,6 +2322,7 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query)
|
|||||||
//msk.set(F_TOTALE, calcola_imp());
|
//msk.set(F_TOTALE, calcola_imp());
|
||||||
msk.set(F_COLFPPRO, "X");
|
msk.set(F_COLFPPRO, "X");
|
||||||
msk.set(FS_RECALC, "");
|
msk.set(FS_RECALC, "");
|
||||||
|
set_scad_f1(msk);
|
||||||
}
|
}
|
||||||
if (_f1_liq && msk.find_by_id(F_DIFFERITA) != NULL)
|
if (_f1_liq && msk.find_by_id(F_DIFFERITA) != NULL)
|
||||||
{
|
{
|
||||||
@ -2331,6 +2333,30 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TPrimanota_application::set_scad_f1(TMask& m)
|
||||||
|
{
|
||||||
|
const TString& cp = m.get(F_CODPAG);
|
||||||
|
const TString& dt = m.get(F_DATADOC);
|
||||||
|
set_pagamento(cp, dt);
|
||||||
|
set_totale_pagamento(false);
|
||||||
|
|
||||||
|
TPagamento& pag = pagamento();
|
||||||
|
if (m.field(FS_RECALC).enabled())
|
||||||
|
{
|
||||||
|
m.set(FS_RDIFFER, "1");
|
||||||
|
m.set(FS_NAMEPAG, pag.name());
|
||||||
|
m.set(FS_TIPOPR, pag.desc_tpr());
|
||||||
|
m.set(FS_MCOMM, pag.mese_commerciale() ? "X" : "");
|
||||||
|
m.set(FS_RECALC, "");
|
||||||
|
m.set(FS_NRATE, pag.n_rate());
|
||||||
|
}
|
||||||
|
pag.set_rate_auto();
|
||||||
|
TSheet_field& ps = m.sfield(FS_RATESHEET);
|
||||||
|
pag.set_sheet(ps); // prepara lo sheet
|
||||||
|
set_banche(m);
|
||||||
|
_pag_rows = ps.rows_array(); // copia sheet
|
||||||
|
}
|
||||||
|
|
||||||
bool TPrimanota_application::save(bool check_dirty)
|
bool TPrimanota_application::save(bool check_dirty)
|
||||||
{
|
{
|
||||||
if (_swap_mask == true)
|
if (_swap_mask == true)
|
||||||
|
@ -1760,7 +1760,7 @@ bool TPrimanota_application::iva_notify(TSheet_field& iva, int r, KEY k)
|
|||||||
real pimponibile(pag.imponibile(inv));
|
real pimponibile(pag.imponibile(inv));
|
||||||
pimponibile.round(pag.round(inv));
|
pimponibile.round(pag.round(inv));
|
||||||
|
|
||||||
if (pimposta != imposta || pimponibile != imponibile)
|
if ((pimposta != imposta || pimponibile != imponibile) && !a.has_f1_db(&m))
|
||||||
a.set_scadenze(m); // Ricalcola rate
|
a.set_scadenze(m); // Ricalcola rate
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3847,7 +3847,7 @@ bool TPrimanota_application::quadratura_handler(TMask_field& f, KEY key)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPrimanota_application::set_righe_iva_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
void TPrimanota_application::write_righe_iva_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||||
{
|
{
|
||||||
TSheet_field& sf = cg_msk.sfield(F_SHEETIVA);
|
TSheet_field& sf = cg_msk.sfield(F_SHEETIVA);
|
||||||
const vector<TPro_msk::riga_iva_s>& righe = msk->get_righeiva();
|
const vector<TPro_msk::riga_iva_s>& righe = msk->get_righeiva();
|
||||||
@ -3867,22 +3867,28 @@ void TPrimanota_application::set_righe_iva_f1(TMask& cg_msk, const shared_ptr<TP
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
bool TPrimanota_application::write_scad_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||||
bool TPrimanota_application::set_scadenze_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
|
||||||
{
|
{
|
||||||
TSheet_field& sf = cg_msk.sfield(FS_RATESHEET);
|
TSheet_field& sf = cg_msk.sfield(FS_RATESHEET);
|
||||||
|
int items = sf.items();
|
||||||
const vector<TPro_msk::scadenza_s>& righe = msk->get_scadenze();
|
const vector<TPro_msk::scadenza_s>& righe = msk->get_scadenze();
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (auto it = righe.begin(); it != righe.end(); ++it, ++i)
|
for (auto it = righe.begin(); it != righe.end(); ++it, ++i)
|
||||||
{
|
{
|
||||||
TToken_string& row = sf.row(i);
|
TToken_string& row = app().pags().row(i);
|
||||||
|
|
||||||
|
if(i >= items)
|
||||||
|
pag_notify(sf, i, K_CTRL+K_INS);
|
||||||
|
|
||||||
|
pag_notify(sf, i, K_SPACE);
|
||||||
row.add(it->data, cid2index(101));
|
row.add(it->data, cid2index(101));
|
||||||
row.add(it->importo, cid2index(102));
|
row.add(it->importo, cid2index(102));
|
||||||
|
pag_notify(sf, i, K_ENTER);
|
||||||
}
|
}
|
||||||
return !righe.empty();
|
return !righe.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPrimanota_application::set_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
void TPrimanota_application::write_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||||
{
|
{
|
||||||
TLocalisamfile clifo(LF_CLIFO);
|
TLocalisamfile clifo(LF_CLIFO);
|
||||||
clifo.setkey(5);
|
clifo.setkey(5);
|
||||||
@ -3913,6 +3919,7 @@ void TPrimanota_application::set_totale(TMask& cg_msk, const shared_ptr<TPro_msk
|
|||||||
{
|
{
|
||||||
totale -= rit;
|
totale -= rit;
|
||||||
cg_msk.set(F_RITFIS, rit);
|
cg_msk.set(F_RITFIS, rit);
|
||||||
|
app().add_cgs_ritenute('F');
|
||||||
}
|
}
|
||||||
cg_msk.set(F_TOTALE, totale);
|
cg_msk.set(F_TOTALE, totale);
|
||||||
}
|
}
|
||||||
@ -3923,11 +3930,12 @@ void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPr
|
|||||||
cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7));
|
cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7));
|
||||||
cg_msk.set(F_DATADOC, msk->get_datadoc());
|
cg_msk.set(F_DATADOC, msk->get_datadoc());
|
||||||
if (!cg_msk.get(F_CODCLIFOR).full() && msk->get_numdoc().full())
|
if (!cg_msk.get(F_CODCLIFOR).full() && msk->get_numdoc().full())
|
||||||
set_clifo(cg_msk, msk);
|
write_clifo(cg_msk, msk);
|
||||||
set_righe_iva_f1(cg_msk, msk);
|
write_righe_iva_f1(cg_msk, msk);
|
||||||
set_totale(cg_msk, msk);
|
set_totale(cg_msk, msk);
|
||||||
if (set_scadenze_f1(cg_msk, msk))
|
cg_msk.set(FS_RECALC, ""); cg_msk.disable(FS_RDIFFER); cg_msk.disable(FS_MCOMM); cg_msk.disable(FS_NRATE);
|
||||||
cg_msk.set(FS_RECALC, "");
|
if(write_scad_f1(cg_msk, msk))
|
||||||
|
app().set_scad_f1(cg_msk);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||||
@ -3950,7 +3958,11 @@ bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
|||||||
// Riporto dati FPPRO su maschera Prima Nota (solo se hai F1)
|
// Riporto dati FPPRO su maschera Prima Nota (solo se hai F1)
|
||||||
// Se non hai F1 collego senza riportarti i dati (solo le chiavi db)
|
// Se non hai F1 collego senza riportarti i dati (solo le chiavi db)
|
||||||
if (msk->should_bring_back())
|
if (msk->should_bring_back())
|
||||||
|
{
|
||||||
riporta_dati_f1(cg_msk, msk);
|
riporta_dati_f1(cg_msk, msk);
|
||||||
|
//TConfig ini("cg2CONTAB0001.ini");
|
||||||
|
//app().ini2mask(ini, cg_msk, false);
|
||||||
|
}
|
||||||
cg_msk.set(F_PROKEY, msk->get_fpprokeys());
|
cg_msk.set(F_PROKEY, msk->get_fpprokeys());
|
||||||
is_collegato(cg_msk.field(F_COLFPPRO));
|
is_collegato(cg_msk.field(F_COLFPPRO));
|
||||||
cg_msk.set(F_ANNORIF, cg_msk.get(F_ANNOIVA));
|
cg_msk.set(F_ANNORIF, cg_msk.get(F_ANNOIVA));
|
||||||
@ -4263,11 +4275,14 @@ TString& TPro_msk::query_fppro(const TString& codforn, const TString& stato_piva
|
|||||||
{
|
{
|
||||||
query << " PZ_DATA = '" << TDate(date).date2ansi() << "' ";
|
query << " PZ_DATA = '" << TDate(date).date2ansi() << "' ";
|
||||||
if (order)
|
if (order)
|
||||||
query << "\nORDER BY P1_DATAORARIC ASC";
|
query << "\nORDER BY P1_DATAORARIC ASC, PZ_TIPOPROT ASC, PZ_NUMPROT ASC";
|
||||||
query << ";";
|
query << ";";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
query.cut(0) << query.left(query.len() - 6);
|
query.cut(0) << query.left(query.len() - 6);
|
||||||
|
query << "\nORDER BY P1_DATAORARIC ASC, PZ_TIPOPROT ASC, PZ_NUMPROT ASC;";
|
||||||
|
}
|
||||||
|
|
||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
@ -185,9 +185,9 @@ class TPrimanota_application : public TRelation_application
|
|||||||
|
|
||||||
static bool quadratura_handler(TMask_field& f, KEY k); // Bottone quadratura per ATS
|
static bool quadratura_handler(TMask_field& f, KEY k); // Bottone quadratura per ATS
|
||||||
|
|
||||||
static void set_righe_iva_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
static void write_righe_iva_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||||
static bool set_scadenze_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
static bool write_scad_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||||
static void set_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
static void write_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||||
static void set_totale(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
static void set_totale(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||||
static void riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
static void riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||||
// Handlers per aggancio FPPRO
|
// Handlers per aggancio FPPRO
|
||||||
@ -210,6 +210,7 @@ protected: // TApplication
|
|||||||
virtual void print();
|
virtual void print();
|
||||||
void dump_rec(TConfig & ini, const TRectype & rec, int row = 0, int pref = 0);
|
void dump_rec(TConfig & ini, const TRectype & rec, int row = 0, int pref = 0);
|
||||||
void dump_fatt(TConfig& ini, TPartita & game, int rigafatt, int pref = 0);
|
void dump_fatt(TConfig& ini, TPartita & game, int rigafatt, int pref = 0);
|
||||||
|
void set_scad_f1(TMask& m);
|
||||||
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
|
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
|
||||||
virtual void mask2ini(const TMask& msk, TConfig& ini);
|
virtual void mask2ini(const TMask& msk, TConfig& ini);
|
||||||
|
|
||||||
|
@ -91,18 +91,18 @@ SPREADSHEET F_SHEETFPPROS 0 15
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 8 ""
|
PROMPT 0 8 ""
|
||||||
ITEM " "
|
ITEM " "
|
||||||
ITEM "Tipo Doc@7"
|
ITEM "Tipo Doc@5"
|
||||||
ITEM "Data Ricezione"
|
ITEM "Data\nRicezione@8"
|
||||||
ITEM "Data Doc."
|
ITEM "Data\nDoc.@8"
|
||||||
ITEM "Importo Totale"
|
ITEM "Totale\nDocumento@7"
|
||||||
ITEM "Ritenute d'acconto"
|
ITEM "Ritenute\nfiscali@6"
|
||||||
ITEM "Numero"
|
ITEM "Numero@14"
|
||||||
ITEM "Paese"
|
ITEM "Paese@4"
|
||||||
ITEM "P. IVA"
|
ITEM "P. IVA@10"
|
||||||
ITEM "Cod. Fiscale"
|
ITEM "Cod. Fiscale@14"
|
||||||
ITEM "Tipo Protocollo\nin ingresso"
|
ITEM "Tipo Protocollo\nin ingresso@10"
|
||||||
ITEM "Progressivo di ingresso"
|
ITEM "Progressivo\ndi ingresso@10"
|
||||||
ITEM "Chiave FPPRO@80"
|
ITEM "Chiave FPPRO@40"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_NUMEROI 20
|
STRING F_NUMEROI 20
|
||||||
|
Loading…
x
Reference in New Issue
Block a user