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));
|
||||
TString msg; msg << "Attenzione il documento " << data_documento.year() << " / " << m.get(F_NUMDOCEXT) <<
|
||||
" 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);
|
||||
return pro_numreg_err;
|
||||
}
|
||||
}
|
||||
//app().curr_mask().set(FS_RECALC, "");
|
||||
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_COLFPPRO, "X");
|
||||
msk.set(FS_RECALC, "");
|
||||
set_scad_f1(msk);
|
||||
}
|
||||
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)
|
||||
{
|
||||
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));
|
||||
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
|
||||
}
|
||||
}
|
||||
@ -3847,7 +3847,7 @@ bool TPrimanota_application::quadratura_handler(TMask_field& f, KEY key)
|
||||
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);
|
||||
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::set_scadenze_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
bool TPrimanota_application::write_scad_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
{
|
||||
TSheet_field& sf = cg_msk.sfield(FS_RATESHEET);
|
||||
int items = sf.items();
|
||||
const vector<TPro_msk::scadenza_s>& righe = msk->get_scadenze();
|
||||
int i = 0;
|
||||
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->importo, cid2index(102));
|
||||
pag_notify(sf, i, K_ENTER);
|
||||
}
|
||||
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);
|
||||
clifo.setkey(5);
|
||||
@ -3913,6 +3919,7 @@ void TPrimanota_application::set_totale(TMask& cg_msk, const shared_ptr<TPro_msk
|
||||
{
|
||||
totale -= rit;
|
||||
cg_msk.set(F_RITFIS, rit);
|
||||
app().add_cgs_ritenute('F');
|
||||
}
|
||||
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_DATADOC, msk->get_datadoc());
|
||||
if (!cg_msk.get(F_CODCLIFOR).full() && msk->get_numdoc().full())
|
||||
set_clifo(cg_msk, msk);
|
||||
set_righe_iva_f1(cg_msk, msk);
|
||||
write_clifo(cg_msk, msk);
|
||||
write_righe_iva_f1(cg_msk, msk);
|
||||
set_totale(cg_msk, msk);
|
||||
if (set_scadenze_f1(cg_msk, msk))
|
||||
cg_msk.set(FS_RECALC, "");
|
||||
cg_msk.set(FS_RECALC, ""); cg_msk.disable(FS_RDIFFER); cg_msk.disable(FS_MCOMM); cg_msk.disable(FS_NRATE);
|
||||
if(write_scad_f1(cg_msk, msk))
|
||||
app().set_scad_f1(cg_msk);
|
||||
}
|
||||
|
||||
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)
|
||||
// Se non hai F1 collego senza riportarti i dati (solo le chiavi db)
|
||||
if (msk->should_bring_back())
|
||||
{
|
||||
riporta_dati_f1(cg_msk, msk);
|
||||
//TConfig ini("cg2CONTAB0001.ini");
|
||||
//app().ini2mask(ini, cg_msk, false);
|
||||
}
|
||||
cg_msk.set(F_PROKEY, msk->get_fpprokeys());
|
||||
is_collegato(cg_msk.field(F_COLFPPRO));
|
||||
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() << "' ";
|
||||
if (order)
|
||||
query << "\nORDER BY P1_DATAORARIC ASC";
|
||||
query << "\nORDER BY P1_DATAORARIC ASC, PZ_TIPOPROT ASC, PZ_NUMPROT ASC";
|
||||
query << ";";
|
||||
}
|
||||
else
|
||||
{
|
||||
query.cut(0) << query.left(query.len() - 6);
|
||||
query << "\nORDER BY P1_DATAORARIC ASC, PZ_TIPOPROT ASC, PZ_NUMPROT ASC;";
|
||||
}
|
||||
|
||||
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 void set_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 void set_clifo(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 write_scad_f1(const 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 riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
|
||||
// Handlers per aggancio FPPRO
|
||||
@ -210,6 +210,7 @@ protected: // TApplication
|
||||
virtual void print();
|
||||
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 set_scad_f1(TMask& m);
|
||||
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
|
||||
virtual void mask2ini(const TMask& msk, TConfig& ini);
|
||||
|
||||
|
@ -91,18 +91,18 @@ SPREADSHEET F_SHEETFPPROS 0 15
|
||||
BEGIN
|
||||
PROMPT 0 8 ""
|
||||
ITEM " "
|
||||
ITEM "Tipo Doc@7"
|
||||
ITEM "Data Ricezione"
|
||||
ITEM "Data Doc."
|
||||
ITEM "Importo Totale"
|
||||
ITEM "Ritenute d'acconto"
|
||||
ITEM "Numero"
|
||||
ITEM "Paese"
|
||||
ITEM "P. IVA"
|
||||
ITEM "Cod. Fiscale"
|
||||
ITEM "Tipo Protocollo\nin ingresso"
|
||||
ITEM "Progressivo di ingresso"
|
||||
ITEM "Chiave FPPRO@80"
|
||||
ITEM "Tipo Doc@5"
|
||||
ITEM "Data\nRicezione@8"
|
||||
ITEM "Data\nDoc.@8"
|
||||
ITEM "Totale\nDocumento@7"
|
||||
ITEM "Ritenute\nfiscali@6"
|
||||
ITEM "Numero@14"
|
||||
ITEM "Paese@4"
|
||||
ITEM "P. IVA@10"
|
||||
ITEM "Cod. Fiscale@14"
|
||||
ITEM "Tipo Protocollo\nin ingresso@10"
|
||||
ITEM "Progressivo\ndi ingresso@10"
|
||||
ITEM "Chiave FPPRO@40"
|
||||
END
|
||||
|
||||
STRING F_NUMEROI 20
|
||||
|
Loading…
x
Reference in New Issue
Block a user