Correzioni fine luglio

git-svn-id: svn://10.65.10.50/trunk@3263 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1996-07-29 10:56:41 +00:00
parent 76490bb089
commit f8073f1e33
25 changed files with 1550 additions and 924 deletions

View File

@ -354,14 +354,13 @@ void TSchedaPercipienti::compila_testata(TMask& m)
{ {
m.set(F_DATADOC, _coll._datadoc); m.set(F_DATADOC, _coll._datadoc);
m.set(F_NUMDOC, _coll._numdoc); m.set(F_NUMDOC, _coll._numdoc);
m.set(F_IVA, _coll._imposte.string()); m.set(F_IVA, _coll._imposte.string());
m.set(F_SPESE, _coll._spese.string()); m.set(F_SPESE, _coll._spese.string());
m.set(F_COMPENS, _coll._compenso.string()); m.set(F_COMPENS, _coll._compenso.string());
switch (tipo_coll()) switch (tipo_coll())
{ {
case ritenuta: case occasionale:
m.set(F_COMPENS, _coll._compenso.string()); m.set(F_COMPENS, _coll._compenso.string());
m.set(F_TOTDOC, _coll._compenso.string()); m.set(F_TOTDOC, _coll._compenso.string());
break; break;
@ -380,67 +379,6 @@ bool TSchedaPercipienti::coll_variazione() const
tipo_coll() == pagamento_piu_perc; tipo_coll() == pagamento_piu_perc;
} }
void TSchedaPercipienti::init_mask(TMask& m)
{
update_lasts(m);
if (tipo_coll() != nessuno)
{
const bool variazione = coll_variazione();
if (!variazione) compila_testata(m);
switch (tipo_coll())
{
case pagamento:
case ritenuta:
// Compilo riga di pagamento SOLO SE NON ce ne sono gia'..
if ( (tipo_coll() == pagamento && _rel->pag_items() == 0)
||
tipo_coll() == ritenuta )
{
const real totrit(m.get(F_TOTRIT));
const real totdoc(m.get(F_TOTDOC));
const real compenso(m.get(F_COMPENS));
const real spese(m.get(F_SPESE));
if ( (tipo_coll() == pagamento && ( _coll._compenso + totrit == totdoc) )
||
(tipo_coll() == ritenuta) )
{
TSheet_field& pags = (TSheet_field&)m.field(F_PAGAMENTI);
TRectype rpag(_rel->pag(0));
rpag.zero();
real& imponibile = _coll._compenso;
rpag.put("DATAPAG", _coll._datadoc);
rpag.put("COMPENSO", compenso);
const real impo_calc = calcola_imponibile(compenso);
rpag.put("IMPONIBILE", impo_calc);
rpag.put("SPESA", spese);
const real rite_calc = calcola_ritenuta(impo_calc);
rpag.put("RITENUTA", rite_calc);
real perc = (rite_calc * 100) / impo_calc;
perc.round(2);
rpag.put("PERC", perc);
rpag.put("NUMVERS", (long)-1);
const real netto = compenso - rite_calc + spese;
rpag.put("NETTO", netto);
// Update spreadsheet
rec2row(pags.row(0), rpag, 0);
pags.force_update();
}
}
break;
default:
break;
}
}
fill_sheet(m);
}
void TSchedaPercipienti::get_ragsoc(const char* tipoa, const long codanagr) void TSchedaPercipienti::get_ragsoc(const char* tipoa, const long codanagr)
{ {
TLocalisamfile anag(LF_ANAG); TLocalisamfile anag(LF_ANAG);
@ -508,7 +446,7 @@ void TSchedaPercipienti::init_query_mode(TMask& m)
} }
return; return;
break; break;
case ritenuta: case occasionale:
/* /*
setta_nprog(m,FALSE); // Sempre in aggiunta setta_nprog(m,FALSE); // Sempre in aggiunta
m.send_key(K_AUTO_ENTER, 0); */ m.send_key(K_AUTO_ENTER, 0); */

View File

@ -9,13 +9,115 @@
// solo se e' un versamento in banca // solo se e' un versamento in banca
// //
// 5.6.96 Calcolo contributo INPS // 5.6.96 Calcolo contributo INPS
// 22.7.96 Esegue controllo ritenuta solo se diversa da ZERO
// Tolti tutti i trunc() per lasciare i decimali nei conti
// 24.7.96 Non considera piu' la perc. come 100 se lasciata vuota
// //
HIDDEN TString80 tmp1, tmp2; HIDDEN TString80 tmp1, tmp2;
HIDDEN real __impo = ZERO; HIDDEN real __impo = ZERO;
HIDDEN real __compe = ZERO; HIDDEN real __compe = ZERO;
HIDDEN real __percra; HIDDEN real __percra = ZERO;
HIDDEN TString80 __rite; HIDDEN TString80 __rite;
HIDDEN bool __bRicalcolaRigaPag = FALSE;
HIDDEN real __rCompensoCg = ZERO;
void TSchedaPercipienti::init_mask(TMask& m)
{
update_lasts(m);
__bRicalcolaRigaPag = FALSE;
__rCompensoCg = ZERO;
if (tipo_coll() != nessuno)
{
const bool variazione = coll_variazione();
if (!variazione) compila_testata(m);
switch (tipo_coll())
{
case pagamento:
case occasionale:
// Compilo riga di pagamento SOLO SE NON ce ne sono gia'..
if ( (tipo_coll() == pagamento && _rel->pag_items() == 0)
||
tipo_coll() == occasionale )
{
const real totrit(m.get(F_TOTRIT));
const real totdoc(m.get(F_TOTDOC));
const real compenso(m.get(F_COMPENS));
const real spese(m.get(F_SPESE));
if ( (tipo_coll() == pagamento && (_coll._compenso + totrit == totdoc) )
||
(tipo_coll() == occasionale) )
{
TSheet_field& pags = (TSheet_field&)m.field(F_PAGAMENTI);
TRectype rpag(_rel->pag(0));
rpag.zero();
real& imponibile = _coll._compenso;
rpag.put("DATAPAG", _coll._datadoc);
rpag.put("COMPENSO", compenso);
// Come 'zzo fa a calcolare l'imponibile se ancora nun c'e' la causale?
// const real impo_calc = calcola_imponibile(compenso);
// rpag.put("IMPONIBILE", impo_calc);
rpag.put("SPESA", spese);
/********** 26.7.96 non esiste piu' sta' roba
const real rite_calc = calcola_ritenuta(impo_calc);
rpag.put("RITENUTA", rite_calc);
real perc = (rite_calc * 100) / impo_calc;
perc.round(2);
rpag.put("PERC", perc);
rpag.put("NUMVERS", (long)-1);
const real netto = compenso - rite_calc + spese;
rpag.put("NETTO", netto);
**************************/
// forza il ricalcolo della riga pag. (da check_causale)
__bRicalcolaRigaPag = TRUE;
__rCompensoCg = compenso;
// Update spreadsheet
rec2row(pags.row(0), rpag, 0);
pags.force_update();
}
}
break;
default:
break;
}
}
fill_sheet(m);
}
// Utilizzato in collegamento da cg
real TSchedaPercipienti::calcola_ritenuta(const real& imponibile, TString& sPercRa)
{
TTable cau("%ca7");
TString codcau(curr_mask().get(F_CODCAUS));
cau.zero();
cau.put("CODTAB", codcau);
cau.read();
real rQuotaRaCaus = cau.get_real("R0");
sPercRa = cau.get("R0");
real rite = ZERO;
rite = (imponibile * rQuotaRaCaus)/100.00;
return rite;
}
// Utilizzato in collegamento da cg Forse ora da togliere..
real TSchedaPercipienti::calcola_imponibile(const real& compenso)
{
TTable cau("%ca7");
TString codcau(curr_mask().get(F_CODCAUS));
cau.zero();
cau.put("CODTAB", codcau);
if (cau.read() != NOERR)
return ZERO;
real quota_imp = cau.get_int("R4");
TString16 cod_qua(cau.get("S1"));
real imponibile_calcolato = ZERO;
// Calcola imponibile
if (compenso != ZERO)
imponibile_calcolato = (compenso * quota_imp) / 100.00;
return imponibile_calcolato;
}
bool TSchedaPercipienti::vers_notify(TSheet_field& s, int r, KEY k) bool TSchedaPercipienti::vers_notify(TSheet_field& s, int r, KEY k)
{ {
@ -726,26 +828,47 @@ bool TSchedaPercipienti::vers1015_handler(TMask_field& f, KEY k)
// //
bool TSchedaPercipienti::check_causale(TMask_field& f, KEY k) bool TSchedaPercipienti::check_causale(TMask_field& f, KEY k)
{ {
// if (k == K_TAB) TMask& m = f.mask();
if (f.to_check(k))
if (k == K_TAB)
// if (f.to_check(k))
{ {
TFixed_string cod_caus(f.get(),3); TFixed_string cod_caus(f.get(),3);
if (cod_caus.empty() && f.mask().is_running()) if (cod_caus.empty() && m.is_running())
{ {
KEY ke = f.mask().last_key(); KEY ke = m.last_key();
if (ke != K_QUIT && ke != K_ESC) if (ke != K_QUIT && ke != K_ESC)
return f.warning_box("Manca la causale"); return f.warning_box("Manca la causale");
} }
else else
{ {
TString16 cod_qua (f.mask().get(F_CODQUA)); TString16 cod_qua (m.get(F_CODQUA));
char tipo = f.mask().get(F_TIPOA)[0]; char tipo = m.get(F_TIPOA)[0];
if (cod_qua == "C" || cod_qua == "E1") if (cod_qua == "C" || cod_qua == "E1")
if (tipo == 'G') if (tipo == 'G')
return f.warning_box("Con il quadro C o E1 e' possibile l'immissione" return f.warning_box("Con il quadro C o E1 e' possibile l'immissione"
" per le sole persone fisiche"); " per le sole persone fisiche");
if (__bRicalcolaRigaPag)
{
TSheet_field& pags = app().pags();
TMask& ssMask = pags.sheet_mask();
// aggiorna la riga ( collegamenti con 6(occas.) e 3(pag.) )
TString sPercRa(6);
real rImpoCg = app().calcola_imponibile(__rCompensoCg);
real rRiteCg = app().calcola_ritenuta(rImpoCg, sPercRa);
TToken_string& tsRiga = pags.row(0);
tsRiga.add(rImpoCg.string(), 3);
tsRiga.add(sPercRa, 4);
tsRiga.add(rRiteCg.string(), 7);
pags.force_update(0);
// Per evitare che i valori vengano azzerati:
__compe = __rCompensoCg;
__impo = rImpoCg;
__percra = atof(sPercRa);
__rite = rRiteCg.string();
}
} }
} }
return TRUE; return TRUE;
@ -756,57 +879,6 @@ bool TSchedaPercipienti::check_causale(TMask_field& f, KEY k)
// RIGA PAGAMENTI // RIGA PAGAMENTI
// //
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
/*****************
bool TSchedaPercipienti::pag_handler(TMask_field& f, KEY k)
{
const bool forzatura = app().curr_mask().get_bool(F_FORCED);
const real compenso (f.mask().get(MPAG_COMPENSO));
real imponibile_calc = ZERO;
TString16 cod_qua(app().curr_mask().get(F_CODQUA));
if (k == K_TAB)
{
if (__compe != ZERO && compenso == ZERO)
app()._azzerato_pag = FALSE;
const bool cambiato_compenso = __compe == ZERO ? __compe != compenso : FALSE;
if (cambiato_compenso)
{
imponibile_calc = calcola_imponibile(f, compenso, cambiato_compenso);
calcola_ritenuta(f, imponibile_calc, cambiato_compenso);
// "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso"
if (cod_qua != "E1")
if (imponibile_calc > compenso)
{
f.warning_box("L'imponibile non puo' essere"
" maggiore del compenso");
return forzatura;
}
f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto
}
const real imponibile(f.mask().get(MPAG_IMPONIBILE));
const bool imponibile_cambiato = __impo != ZERO ? imponibile != __impo : FALSE;
if (imponibile_cambiato)
calcola_ritenuta(f, imponibile, imponibile_cambiato);
}
if (k == K_ENTER)
{
// "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso"
if (cod_qua != "E1")
if (imponibile_calc > compenso)
{
f.warning_box("L'imponibile non puo' essere"
" maggiore del compenso");
return forzatura;
}
}
return TRUE;
}
*****************************/
// //
// SPESA_HANDLER // SPESA_HANDLER
// //
@ -820,7 +892,7 @@ bool TSchedaPercipienti::spesa_handler(TMask_field& f, KEY k)
} }
// CHECK_RITENUTA // CHECK_RITENUTA
// o Controlla se la ritenuta e' corretta // o Controlla se la ritenuta e' corretta (SOLO SE != ZERO 22.7.96)
// o Ricalcola la ritenuta se e' stata vuotata // o Ricalcola la ritenuta se e' stata vuotata
bool TSchedaPercipienti::check_ritenuta(TMask_field& f, KEY k) bool TSchedaPercipienti::check_ritenuta(TMask_field& f, KEY k)
{ {
@ -837,14 +909,19 @@ bool TSchedaPercipienti::check_ritenuta(TMask_field& f, KEY k)
f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto
} }
// Controlla solo se RITENUTA != ZERO
if (k == K_ENTER) if (k == K_ENTER)
{ {
TMask& m = f.mask();
const bool forzatura = app().curr_mask().get_bool(F_FORCED); const bool forzatura = app().curr_mask().get_bool(F_FORCED);
real perc_ra = (f.mask().get_real(MPAG_PERCRA) ); real perc_ra = (m.get_real(MPAG_PERCRA) );
if (perc_ra == ZERO) if (perc_ra == ZERO)
perc_ra = 100.00; perc_ra = 100.00;
const real imponibile (f.mask().get(MPAG_IMPONIBILE)); const real imponibile (m.get(MPAG_IMPONIBILE));
real ritenuta (f.mask().get(MPAG_RITPAG)); real ritenuta (m.get(MPAG_RITPAG));
if (ritenuta == ZERO)
return TRUE;
real rite = ZERO; real rite = ZERO;
// Se non indico la percentuale => considero come 100% // Se non indico la percentuale => considero come 100%
@ -903,57 +980,20 @@ real TSchedaPercipienti::calcola_imponibile(TMask_field& f, const real& compenso
// Calcola imponibile // Calcola imponibile
if (compenso != ZERO) if (compenso != ZERO)
{ {
// "Se la perc.ass.imponibile = 0 => percentuale = 100% " imponibile_calcolato = (compenso * quota_imp) / 100.00;
if (quota_imp == ZERO)
imponibile_calcolato = compenso;
else
imponibile_calcolato = (compenso * quota_imp) / 100.00;
imponibile_calcolato.trunc();
// imponibile_calcolato = round_770(imponibile_calcolato);
// 13.6.96 toglie il contributo inps // 13.6.96 toglie il contributo inps
if (bContributoInps) if (bContributoInps)
{ {
real rPercCassaPrev=ZERO; real rPercCassaPrev=ZERO;
rPercCassaPrev = mm.get_real(F_CASSA_PREV); rPercCassaPrev = mm.get_real(F_CASSA_PREV);
imponibile_calcolato = (imponibile_calcolato / (100.00 + rPercCassaPrev)) * 100.00; imponibile_calcolato = (imponibile_calcolato / (100.00 + rPercCassaPrev)) * 100.00;
imponibile_calcolato.trunc();
} }
TString impost(imponibile_calcolato.string()); TString impost(imponibile_calcolato.string());
lm.set(MPAG_IMPONIBILE, impost); lm.set(MPAG_IMPONIBILE, impost);
} }
return imponibile_calcolato; return imponibile_calcolato;
} }
// Utilizzato in collegamento da cg
real TSchedaPercipienti::calcola_imponibile(const real& compenso)
{
TTable cau("%ca7");
TString codcau(curr_mask().get(F_CODCAUS));
cau.zero();
cau.put("CODTAB", codcau);
cau.read();
real quota_imp = cau.get_int("R4");
TString16 cod_qua(cau.get("S1"));
real imponibile_calcolato = ZERO;
// Calcola imponibile
if (compenso != ZERO)
{
// "Se la perc.ass.imponibile = 0 => percentuale = 100% "
if (quota_imp == ZERO)
imponibile_calcolato = compenso;
else
imponibile_calcolato = (compenso * quota_imp) / 100.00;
// imponibile_calcolato = round_770(imponibile_calcolato);
imponibile_calcolato.trunc();
}
return imponibile_calcolato;
}
bool TSchedaPercipienti::imponibile_handler(TMask_field& f, KEY k) bool TSchedaPercipienti::imponibile_handler(TMask_field& f, KEY k)
{ {
if (k == K_TAB) if (k == K_TAB)
@ -979,10 +1019,11 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k)
TMask& mm = app().curr_mask(); // main mask TMask& mm = app().curr_mask(); // main mask
TMask& lm = f.mask(); // local mask TMask& lm = f.mask(); // local mask
const bool forzatura = mm.get_bool(F_FORCED); const bool forzatura = mm.get_bool(F_FORCED);
const real compenso (lm.get(MPAG_COMPENSO)); real compenso (lm.get(MPAG_COMPENSO));
real imponibile = ZERO; real imponibile = ZERO;
TString16 cod_qua(mm.get(F_CODQUA)); TString16 cod_qua(mm.get(F_CODQUA));
const bool bContributoInps = mm.get_bool(F_FLAG_INPS); const bool bContributoInps = mm.get_bool(F_FLAG_INPS);
bool bCambiatoCompenso = FALSE;
if (k == K_TAB) if (k == K_TAB)
{ {
@ -992,11 +1033,11 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k)
if (compenso == ZERO) if (compenso == ZERO)
return TRUE; return TRUE;
const bool forza_ricalcolo = __compe != ZERO ? __compe != compenso : FALSE; bCambiatoCompenso = __compe != ZERO ? __compe != compenso : FALSE;
if (__compe != compenso) if (__compe != compenso)
__compe = compenso; // per evitare di perdere l'imponibile __compe = compenso; // per evitare di perdere l'imponibile
imponibile = calcola_imponibile(f, compenso, forza_ricalcolo); imponibile = calcola_imponibile(f, compenso, bCambiatoCompenso);
#ifdef DBG #ifdef DBG
tmp1 = imponibile.string(); tmp1 = imponibile.string();
@ -1006,7 +1047,7 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k)
warning_box("Imponibile = %s - Compenso = %s", (const char*)tmp1,(const char*)tmp2 ); warning_box("Imponibile = %s - Compenso = %s", (const char*)tmp1,(const char*)tmp2 );
#endif #endif
calcola_ritenuta(f, imponibile, forza_ricalcolo); calcola_ritenuta(f, imponibile, bCambiatoCompenso);
// "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso" // "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso"
if (cod_qua != "E1") if (cod_qua != "E1")
@ -1020,15 +1061,14 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k)
// Calcolo contributo INPS // Calcolo contributo INPS
if (bContributoInps) if (bContributoInps)
{ {
real /*rQuotaPrev,*/rScorporaComp, rImpInps, rInpsComplex, rInpsPerc; real rInpsPercPrima = lm.get_real(MPAG_INPSPERC);
real rInpsCompPrima = lm.get_real(MPAG_INPSCOMP);
real rScorporaComp, rImpInps, rInpsComplex, rInpsPerc;
real rPercCassaPrev = mm.get_real(F_CASSA_PREV); real rPercCassaPrev = mm.get_real(F_CASSA_PREV);
real rPercContrInps = mm.get_real(F_PERC_INPS); real rPercContrInps = mm.get_real(F_PERC_INPS);
real rPercAssContrInps = mm.get_real(F_PERC_ASS_INPS); real rPercAssContrInps = mm.get_real(F_PERC_ASS_INPS);
real rQuotaCommitContrInps = mm.get_real(F_PERC_COMMIT_INPS); real rQuotaCommitContrInps = mm.get_real(F_PERC_COMMIT_INPS);
// rQuotaPrev = compenso / (100.00 + rPercCassaPrev);
// rQuotaPrev.round(0);
rScorporaComp = (compenso / (100.00 + rPercCassaPrev)) * 100.00; rScorporaComp = (compenso / (100.00 + rPercCassaPrev)) * 100.00;
rImpInps = (rScorporaComp / 100.00) * rPercAssContrInps; rImpInps = (rScorporaComp / 100.00) * rPercAssContrInps;
rImpInps.round(0); rImpInps.round(0);
@ -1039,13 +1079,13 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k)
else else
rInpsPerc = rInpsComplex - ((rInpsComplex * rQuotaCommitContrInps)/100.00); rInpsPerc = rInpsComplex - ((rInpsComplex * rQuotaCommitContrInps)/100.00);
rInpsComplex.trunc();
rInpsPerc.trunc();
TString sInpsComp(rInpsComplex.string()); TString sInpsComp(rInpsComplex.string());
TString sInpsPerc(rInpsPerc.string()); TString sInpsPerc(rInpsPerc.string());
lm.set(MPAG_INPSPERC, sInpsPerc); // Setto i compensi INPS solo se prima erano vuoti
lm.set(MPAG_INPSCOMP, sInpsComp); if (rInpsPercPrima == ZERO || bCambiatoCompenso)
lm.set(MPAG_INPSPERC, sInpsPerc);
if (rInpsCompPrima == ZERO || bCambiatoCompenso)
lm.set(MPAG_INPSCOMP, sInpsComp);
} }
lm.send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto lm.send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto
} }
@ -1075,10 +1115,11 @@ bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k)
// //
bool TSchedaPercipienti::calcola_ritenuta(TMask_field& f, const real& imponibile, const bool forza, const real percent) bool TSchedaPercipienti::calcola_ritenuta(TMask_field& f, const real& imponibile, const bool forza, const real percent)
{ {
real rPercRaRiga = f.mask().get_real(MPAG_PERCRA); TMask& m=f.mask();
real rPercRaRiga = m.get_real(MPAG_PERCRA);
real rPercRaCaus = app().curr_mask().get_real(F_PERRIT); real rPercRaCaus = app().curr_mask().get_real(F_PERRIT);
const bool azzerato = app()._azzerato_pag; const bool azzerato = app()._azzerato_pag;
const real rit_prec(f.mask().get(MPAG_RITPAG)); const real rit_prec(m.get(MPAG_RITPAG));
if (rit_prec != ZERO && !forza) if (rit_prec != ZERO && !forza)
return FALSE; return FALSE;
@ -1101,48 +1142,19 @@ bool TSchedaPercipienti::calcola_ritenuta(TMask_field& f, const real& imponibile
if (prendi_ra_da_causale) if (prendi_ra_da_causale)
{ {
TString quota_rast(rPercRaCaus.string()); TString quota_rast(rPercRaCaus.string());
f.mask().set(MPAG_PERCRA, quota_rast); m.set(MPAG_PERCRA, quota_rast);
} }
// Calcolo ritenuta ... // Calcolo ritenuta ...
// Se non indico la percentuale => considero come 100% real rite = (imponibile * rPerc) / 100.00;
real rite = ZERO;
if (rPerc == ZERO)
rite = imponibile;
else
rite = (imponibile * rPerc) / 100.00;
rite.trunc();
// rite.round();
// .. riempie il campo corrispondente // .. riempie il campo corrispondente
TString ritest(rite.string()); TString ritest(rite.string());
f.mask().set(MPAG_RITPAG, ritest); m.set(MPAG_RITPAG, ritest);
f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto m.send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto
return TRUE; return TRUE;
} }
// Utilizzato in collegamento da cg
real TSchedaPercipienti::calcola_ritenuta(const real& imponibile)
{
TTable cau("%ca7");
TString codcau(curr_mask().get(F_CODCAUS));
cau.zero();
cau.put("CODTAB", codcau);
cau.read();
real rQuotaRaCaus = cau.get_real("R0");
real rite = ZERO;
// Calcolo ritenuta ...
// Se non indico la percentuale => considero come 100%
if (rQuotaRaCaus == ZERO)
rite = imponibile;
else
rite = (imponibile * rQuotaRaCaus)/100.00;
rite.trunc();
return rite;
}
// //
// Handler della percentuale di r.a. // Handler della percentuale di r.a.
// ricalcolo la ritenuta quando cambia // ricalcolo la ritenuta quando cambia
@ -1189,7 +1201,7 @@ real TSchedaPercipienti::calcola_netto(TMask_field& f)
const real inpsperc (m.get(MPAG_INPSPERC)); const real inpsperc (m.get(MPAG_INPSPERC));
netto = compenso - ritenuta + spesa - inpsperc; netto = compenso - ritenuta + spesa - inpsperc;
netto.trunc(); // netto.trunc();
f.mask().set(MPAG_NETTO, netto.string()); f.mask().set(MPAG_NETTO, netto.string());
return netto; return netto;

View File

@ -92,7 +92,7 @@ class TSchedaPercipienti : public TRelation_application
static bool calcola_ritenuta (TMask_field& f,const real& compenso,const bool forza=FALSE,const real perc=ZERO); static bool calcola_ritenuta (TMask_field& f,const real& compenso,const bool forza=FALSE,const real perc=ZERO);
static real calcola_netto (TMask_field& f); static real calcola_netto (TMask_field& f);
real calcola_imponibile(const real& compenso); real calcola_imponibile(const real& compenso);
real calcola_ritenuta (const real& imponibile); real calcola_ritenuta (const real& imponibile, TString& sPercRa);
static long get_numvers (TMask_field& f); static long get_numvers (TMask_field& f);
static void setta_ritvers(TMask_field& f, const real& ritenuta); static void setta_ritvers(TMask_field& f, const real& ritenuta);

View File

@ -104,7 +104,6 @@ bool TDati_anagrafici::codditta_hnd(TMask_field& f, KEY k)
f.check(); f.check();
} }
} }
return TRUE; return TRUE;
} }
@ -258,13 +257,12 @@ bool TDati_anagrafici::indirizzo (TMask_field& f, KEY k)
char tipoa; char tipoa;
TString ragione,nome,cognome,ind,civ,cap,com,prov,codcom; TString ragione,nome,cognome,ind,civ,cap,com,prov,codcom;
if ( k == K_TAB )// && f.mask().is_running() ) if (k == K_TAB)
{ {
tipoa = f.mask().get (ASCF_TIPOA)[0]; tipoa = f.mask().get (ASCF_TIPOA)[0];
codanagr = f.mask().get_long(F_ANAGR); codanagr = f.mask().get_long(F_ANAGR);
// Ricerca sull'archivio anagrafiche dei dati relativi al depositario // Ricerca sull'archivio anagrafiche dei dati relativi al depositario
anag.setkey(1); anag.setkey(1);
anag.zero(); anag.zero();
anag.put("TIPOA", tipoa); anag.put("TIPOA", tipoa);
@ -343,8 +341,7 @@ bool TDati_anagrafici::cod_conc (TMask_field& f, KEY k)
tipoa = f.mask().get (F_TIPOA)[0]; tipoa = f.mask().get (F_TIPOA)[0];
codanagr = f.mask().get_long(F_ANAGR); codanagr = f.mask().get_long(F_ANAGR);
// Ricerca sull'archivio anagrafiche dei dati // Ricerca sull'archivio anagrafiche dei dati
anag.setkey(1); anag.setkey(1);
anag.zero(); anag.zero();
anag.put("TIPOA", tipoa); anag.put("TIPOA", tipoa);
@ -357,8 +354,7 @@ bool TDati_anagrafici::cod_conc (TMask_field& f, KEY k)
codcom = anag.get("COMRES"); codcom = anag.get("COMRES");
} }
// Ricerca dati relativi al comune // Ricerca dati relativi al comune
comuni.setkey(1); comuni.setkey(1);
comuni.zero(); comuni.zero();
comuni.put("STATO", ""); comuni.put("STATO", "");
@ -520,7 +516,6 @@ bool TDati_anagrafici::destroy()
{ {
delete _msk; delete _msk;
delete _rel; delete _rel;
return TApplication::destroy(); return TApplication::destroy();
} }
@ -538,23 +533,17 @@ bool TDati_anagrafici::main_loop()
switch (tasto) switch (tasto)
{ {
case K_ESC : case K_ESC :
break; break;
case K_QUIT : case K_QUIT :
break; break;
case K_SAVE : case K_SAVE :
{
registra(); registra();
} break;
break;
default: default:
break; break;
} }
} }
while (tasto != K_QUIT); //K_ENTER while (tasto != K_QUIT);
return FALSE; return FALSE;
} }
@ -634,8 +623,7 @@ void TDati_anagrafici::registra_caaf()
long codditta; long codditta;
char tipoa = 'G'; char tipoa = 'G';
// Registro il codice caaf sull'archivio base // Registro il codice caaf sull'archivio base
codditta = _msk->get_long(F_CODDITTA); codditta = _msk->get_long(F_CODDITTA);
base.setkey(1); base.setkey(1);

View File

@ -75,7 +75,7 @@ BEGIN
OUTPUT F_PROVNASC LF_COMUNI->PROVCOM OUTPUT F_PROVNASC LF_COMUNI->PROVCOM
OUTPUT F_COMRES 1@->DENCOM OUTPUT F_COMRES 1@->DENCOM
OUTPUT F_PROVRES 1@->PROVCOM OUTPUT F_PROVRES 1@->PROVCOM
OUTPUT F_COMRF 2@->DENCOM OUTPUT F_COMRF 2@->DENCOM
OUTPUT F_PROVRF 2@->PROVCOM OUTPUT F_PROVRF 2@->PROVCOM
OUTPUT F_PTELRF LF_ANAG->PTELRF OUTPUT F_PTELRF LF_ANAG->PTELRF
OUTPUT F_TELRF LF_ANAG->TELRF OUTPUT F_TELRF LF_ANAG->TELRF

View File

@ -70,25 +70,25 @@ BEGIN
JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF
DISPLAY "Codice" CODANAGR DISPLAY "Codice" CODANAGR
DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC
OUTPUT F_COFI LF_ANAG->COFI OUTPUT F_COFI LF_ANAG->COFI
OUTPUT F_COGNOME LF_ANAG->RAGSOC[1,30] OUTPUT F_COGNOME LF_ANAG->RAGSOC[1,30]
OUTPUT F_NOME LF_ANAG->RAGSOC[31,50] OUTPUT F_NOME LF_ANAG->RAGSOC[31,50]
OUTPUT F_SESSO SESSO OUTPUT F_SESSO SESSO
OUTPUT F_DATANASC DATANASC OUTPUT F_DATANASC DATANASC
OUTPUT F_COMNASC LF_COMUNI->DENCOM OUTPUT F_COMNASC LF_COMUNI->DENCOM
OUTPUT F_PROVNASC LF_COMUNI->PROVCOM OUTPUT F_PROVNASC LF_COMUNI->PROVCOM
OUTPUT F_INDRES LF_ANAG->INDRES OUTPUT F_INDRES LF_ANAG->INDRES
OUTPUT F_CIVRES LF_ANAG->CIVRES OUTPUT F_CIVRES LF_ANAG->CIVRES
OUTPUT F_CAPRES LF_ANAG->CAPRES OUTPUT F_CAPRES LF_ANAG->CAPRES
OUTPUT F_INDRF LF_ANAG->INDRF OUTPUT F_INDRF LF_ANAG->INDRF
OUTPUT F_CIVRF LF_ANAG->CIVRF OUTPUT F_CIVRF LF_ANAG->CIVRF
OUTPUT F_CAPRF LF_ANAG->CAPRF OUTPUT F_CAPRF LF_ANAG->CAPRF
OUTPUT F_COMRES 1@->DENCOM OUTPUT F_COMRES 1@->DENCOM
OUTPUT F_PROVRES 1@->PROVCOM OUTPUT F_PROVRES 1@->PROVCOM
OUTPUT F_COMRF 2@->DENCOM OUTPUT F_COMRF 2@->DENCOM
OUTPUT F_PROVRF 2@->PROVCOM OUTPUT F_PROVRF 2@->PROVCOM
OUTPUT F_DOMFISC LF_ANAG->VARSLORES OUTPUT F_DOMFISC LF_ANAG->VARSLORES
OUTPUT F_ANAGR LF_ANAGFIS->CODANAGR OUTPUT F_ANAGR LF_ANAGFIS->CODANAGR
OUTPUT F_PTELRF LF_ANAG->PTELRF OUTPUT F_PTELRF LF_ANAG->PTELRF
OUTPUT F_TELRF LF_ANAG->TELRF OUTPUT F_TELRF LF_ANAG->TELRF
FIELD LF_BASE->RAPPR FIELD LF_BASE->RAPPR

View File

@ -314,6 +314,7 @@ BEGIN
PROMPT 2 6 "18 Interessi " PROMPT 2 6 "18 Interessi "
FIELD LF_QUAA2->INTER18 FIELD LF_QUAA2->INTER18
PICTURE "." PICTURE "."
GROUP G_ALL
END END
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3

View File

@ -35,20 +35,20 @@ class TQuadroC_E2 : public TRelation_application
bool bInps; bool bInps;
real inps; real inps;
}; };
righe_pag* _rig; righe_pag* _rig;
TRelation* _rel; TRelation* _rel;
TMask* _msk[2]; TMask* _msk[2];
TSort* _sort; TSort* _sort;
long _codanagr; long _codanagr;
char _tipoa, _tipoq; char _tipoa, _tipoq;
int _nproga; int _nproga;
int _mode; int _mode;
int _anno_dic; // anno dichiarazione int _anno_dic; // anno dichiarazione
TLocalisamfile* _per, *_scper, *_rpag, *_qd; TLocalisamfile* _per, *_scper, *_rpag, *_qd;
TTable* _ca7; TTable* _ca7;
TRiporti _rip; TRiporti _rip;
long _codditta;
int _file; int _file;
private: private:
static bool nprog_handler (TMask_field& f, KEY key); static bool nprog_handler (TMask_field& f, KEY key);
@ -249,7 +249,7 @@ bool TQuadroC_E2::codditta_hnd(TMask_field& f, KEY k)
{ {
if (k == K_TAB && !f.mask().is_running()) if (k == K_TAB && !f.mask().is_running())
{ {
TString16 codditta; codditta << get_firm_770(); TString16 codditta; codditta << app()._codditta;
if (codditta != "0") if (codditta != "0")
{ {
f.set(codditta); f.set(codditta);
@ -377,7 +377,7 @@ bool TQuadroC_E2::generazione()
int codcaus, nprog; int codcaus, nprog;
TString16 qua; TString16 qua;
TDate datapag; TDate datapag;
real perc=ZERO,somme=ZERO,impo=ZERO,rite=ZERO,comp=ZERO,inps=ZERO; real perc=ZERO,spesa=ZERO,impo=ZERO,rite=ZERO,comp=ZERO,inps=ZERO;
for (; cur.pos() < nitems; ++cur) for (; cur.pos() < nitems; ++cur)
{ {
@ -419,16 +419,16 @@ bool TQuadroC_E2::generazione()
continue; continue;
//codtrib = cau.get_int("I0"); //codtrib = cau.get_int("I0");
perc = rpag.get_real(PAG_PERC); perc = rpag.get_real(PAG_PERC);
somme = rpag.get_real(PAG_SPESA); spesa = rpag.get_real(PAG_SPESA);
rite = rpag.get_real(PAG_RITENUTA); rite = rpag.get_real(PAG_RITENUTA);
impo = rpag.get_real(PAG_IMPONIBILE); impo = rpag.get_real(PAG_IMPONIBILE);
comp = rpag.get_real(PAG_COMPENSO); comp = rpag.get_real(PAG_COMPENSO);
inps = rpag.get_real(PAG_INPSPERC); inps = rpag.get_real(PAG_INPSPERC);
if (perc==ZERO && comp==ZERO && rite==ZERO && impo==ZERO if (perc==ZERO && comp==ZERO && rite==ZERO && impo==ZERO
&& somme==ZERO) && spesa==ZERO)
continue; continue;
riempi_record(tipoa,codan,codcaus,perc,somme,impo,rite,comp,acc_imp,inps,bContrInps); riempi_record(tipoa,codan,codcaus,perc,spesa,impo,rite,comp,acc_imp,inps,bContrInps);
} }
rpag.readat(nrec); rpag.readat(nrec);
} }
@ -546,7 +546,7 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
int codcaus_p, codcaus, nprog; int codcaus_p, codcaus, nprog;
real tot_somme=ZERO,tot_impo=ZERO,tot_rite=ZERO,tot_comp=ZERO, rQCInps=ZERO; real tot_somme=ZERO,tot_impo=ZERO,tot_rite=ZERO,tot_comp=ZERO, rQCInps=ZERO;
real rTotQCInps = ZERO; real rTotQCInps = ZERO;
bool esiste_record = FALSE, acc_imp = FALSE; bool esiste_record=FALSE, bAssoggettateRacc=FALSE,bFattoProspetto=FALSE;
struct righe_pag* rp; struct righe_pag* rp;
keyp = key = ""; keyp = key = "";
@ -557,25 +557,26 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
{ {
p.addstatus(1); p.addstatus(1);
esiste_record = TRUE; esiste_record = TRUE;
rp = (struct righe_pag*)buf; rp = (struct righe_pag*)buf;
tipoa = rp->tipoa; tipoa = rp->tipoa;
codanag = atol(rp->codan); codanag = atol(rp->codan);
codcaus = atoi(rp->codcau); codcaus = atoi(rp->codcau);
perc = rp->perc; perc = rp->perc;
acc_imp = rp->acim; bAssoggettateRacc = rp->acim;
// non frega un tubo bInps = rp->bInps; // se la riga aveva il contributo inps nella caus. // non frega un tubo bInps = rp->bInps; // se la riga aveva il contributo inps nella caus.
rQCInps = rp->inps; rQCInps = rp->inps;
if (QuadroE1() && !acc_imp) if (QuadroE1() && !bAssoggettateRacc)
{ {
genera_prospetto(codcaus,rp->comp,rp->impo,rp->rite); genera_prospetto(codcaus,rp->comp,rp->impo,rp->rite);
esiste_record = FALSE; bFattoProspetto = TRUE;
} }
else else
{ {
key.format("%c%5ld%2d%s", tipoa, codanag, codcaus, (const char*)perc); key.format("%c%5ld%2d%s", tipoa, codanag, codcaus, (const char*)perc);
if ( (key != keyp) && (keyp != "") ) if ( (key != keyp) && (keyp != "") )
{ {
bFattoProspetto = FALSE;
qd.zero(); qd.zero();
qd.put("CODDITTA", (long)get_firm_770()); qd.put("CODDITTA", (long)get_firm_770());
qd.put("TIPOA", tipoa_p); qd.put("TIPOA", tipoa_p);
@ -587,7 +588,7 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
if (QuadroC()) if (QuadroC())
qd.put("CONTSSN", rTotQCInps); qd.put("CONTSSN", rTotQCInps);
if (QuadroD() || QuadroC()) if (QuadroD() || QuadroC() || QuadroE())
qd.put("SOMME", tot_somme + tot_comp - tot_impo); qd.put("SOMME", tot_somme + tot_comp - tot_impo);
else else
if (QuadroD1()) if (QuadroD1())
@ -596,11 +597,8 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
qd.put("SPESEANT", tot_somme); qd.put("SPESEANT", tot_somme);
} }
else else
if (QuadroE()) if (QuadroE1())
qd.put("SOMME", tot_somme); qd.put("SOMME", tot_comp);
else
if (QuadroE1())
qd.put("SOMME", tot_comp);
if (QuadroE1()) if (QuadroE1())
qd.put("AMMONTARE", tot_impo); qd.put("AMMONTARE", tot_impo);
@ -614,11 +612,9 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
qd.put("PERC", perc_p); qd.put("PERC", perc_p);
// if (_tipoq != 'E' && _tipoq != '2')
if (!QuadroE() && !QuadroE1()) if (!QuadroE() && !QuadroE1())
qd.put("TOTALE", tot_comp + tot_somme); qd.put("TOTALE", tot_comp + tot_somme);
// if (_tipoq == '2')
if (QuadroE1()) if (QuadroE1())
qd.put("NETTO", tot_comp - tot_rite); qd.put("NETTO", tot_comp - tot_rite);
else else
@ -627,11 +623,11 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
rTotQCInps = tot_impo = tot_somme = tot_rite = tot_comp = ZERO; rTotQCInps = tot_impo = tot_somme = tot_rite = tot_comp = ZERO;
} }
tot_somme += rp->somme; tot_somme += rp->somme;
tot_rite += rp->rite; tot_rite += rp->rite;
tot_impo += rp->impo; tot_impo += rp->impo;
tot_comp += rp->comp; tot_comp += rp->comp;
rTotQCInps += rQCInps; rTotQCInps += rQCInps;
if (tipoa_p != tipoa || codanag != codanag_p) if (tipoa_p != tipoa || codanag != codanag_p)
nprog = 1; nprog = 1;
@ -645,41 +641,32 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
} }
} // while (retrieve() != NULL) } // while (retrieve() != NULL)
if (esiste_record) if (esiste_record || bFattoProspetto)
{ {
qd.zero(); qd.zero();
qd.put("CODDITTA", (long)get_firm_770()); qd.put("CODDITTA", (long)_codditta);
qd.put("TIPOA", tipoa_p); qd.put("TIPOA", tipoa_p);
qd.put("CODANAGR", (long)codanag_p); qd.put("CODANAGR", (long)codanag_p);
qd.put("CODCAUS", codcaus_p); qd.put("CODCAUS", codcaus_p);
qd.put("NPROG", nprog++); qd.put("NPROG", nprog++);
// if (_tipoq == 'D' || _tipoq == 'C') if (QuadroD() || QuadroC() || QuadroE())
if (QuadroD() || QuadroC())
qd.put("SOMME", tot_somme + tot_comp - tot_impo); qd.put("SOMME", tot_somme + tot_comp - tot_impo);
else else
// if (_tipoq == '1')
if (QuadroD1()) if (QuadroD1())
{ {
qd.put("QUOTAPRO", tot_comp - tot_impo); qd.put("QUOTAPRO", tot_comp - tot_impo);
qd.put("SPESEANT", tot_somme); qd.put("SPESEANT", tot_somme);
} }
else else
// if (_tipoq == 'E') if (QuadroE1())
if (QuadroE()) qd.put("SOMME", tot_comp);
qd.put("SOMME", tot_somme);
else
// if (_tipoq == '2')
if (QuadroE1())
qd.put("SOMME", tot_comp);
// if (_tipoq == '2')
if (QuadroE1()) if (QuadroE1())
qd.put("AMMONTARE", tot_impo); qd.put("AMMONTARE", tot_impo);
else else
qd.put("IMPONIBILE", tot_impo); qd.put("IMPONIBILE", tot_impo);
// if (_tipoq == 'C')
if (QuadroC()) if (QuadroC())
qd.put("RITENUTE", tot_rite); qd.put("RITENUTE", tot_rite);
else else
@ -691,12 +678,9 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
if (QuadroC()) if (QuadroC())
qd.put("CONTSSN", rTotQCInps); qd.put("CONTSSN", rTotQCInps);
// if (_tipoq != 'E' && _tipoq != '2')
if (!QuadroE() && !QuadroE1()) if (!QuadroE() && !QuadroE1())
qd.put("TOTALE", tot_comp + tot_somme); qd.put("TOTALE", tot_comp + tot_somme);
// if (_tipoq == '2')
if (QuadroE1()) if (QuadroE1())
qd.put("NETTO", tot_comp - tot_rite); qd.put("NETTO", tot_comp - tot_rite);
else else
@ -828,7 +812,7 @@ bool TQuadroC_E2::user_create()
_rel = new TRelation(_file); _rel = new TRelation(_file);
_rpag = new TLocalisamfile(LF_RPAG); _rpag = new TLocalisamfile(LF_RPAG);
_ca7 = new TTable ("%CA7"); _ca7 = new TTable ("%CA7");
_codditta = get_firm_770();
set_search_field(F_CODANAGRPERC); set_search_field(F_CODANAGRPERC);
_registra = FALSE; _registra = FALSE;

View File

@ -214,8 +214,9 @@ BEGIN
DISPLAY "C.T." B2 DISPLAY "C.T." B2
DISPLAY "I.C." B1 DISPLAY "I.C." B1
DISPLAY "R.A." B0 DISPLAY "R.A." B0
OUTPUT F_CODCAU CODTAB OUTPUT F_CODCAU CODTAB
OUTPUT F_DESCRCAUS S0 OUTPUT F_DESCRCAUS S0
OUTPUT F_ALI R0
FLAGS "Z" FLAGS "Z"
WARNING "Manca la causale" WARNING "Manca la causale"
CHECKTYPE NORMAL CHECKTYPE NORMAL

View File

@ -68,6 +68,7 @@ class TQuadroI : public TRelation_application
TMask * _msk; TMask * _msk;
char _quadro; char _quadro;
protected: protected:
static bool PDGcalcolaM6(TMask_field& f, KEY k);
virtual bool user_create(); virtual bool user_create();
virtual bool user_destroy(); virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; } virtual TRelation* get_relation() const { return _rel; }
@ -209,6 +210,23 @@ int TQuadroI::read(TMask& m)
return NOERR; return NOERR;
} }
bool TQuadroI::PDGcalcolaM6(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TMask& m = f.mask();
real m3 = m.get_real(F_M3);
real m4 = m.get_real(F_M4);
real m5 = m.get_real(F_M5);
real m6 = m3 - m4 - m5;
if (m6 < ZERO)
m6 = ZERO;
TString m6s(m6.string());
m.set(F_M6, m6s);
}
return TRUE;
}
bool TQuadroI::user_create() bool TQuadroI::user_create()
{ {
switch (_quadro) switch (_quadro)
@ -225,6 +243,9 @@ bool TQuadroI::user_create()
break; break;
case 'W': case 'W':
_msk = new TMask("771400a"); _msk = new TMask("771400a");
_msk->set_handler(F_M3, PDGcalcolaM6);
_msk->set_handler(F_M4, PDGcalcolaM6);
_msk->set_handler(F_M5, PDGcalcolaM6);
_rel = new TRelation (LF_BASEBIS); _rel = new TRelation (LF_BASEBIS);
break; break;
case '2': case '2':

View File

@ -203,7 +203,15 @@
#define F_QSUPPS 424 #define F_QSUPPS 424
#define F_QSUPPT 425 #define F_QSUPPT 425
#define F_CRIMPDL357 307
// P.dati generali
#define F_M1 300
#define F_M2 301
#define F_M3 302
#define F_M4 303
#define F_M5 304
#define F_M6 305
#define F_TIPOQUA1 430 #define F_TIPOQUA1 430
#define F_TIPOQUA2 431 #define F_TIPOQUA2 431
#define F_TIPOQUA 432 #define F_TIPOQUA 432

View File

@ -449,8 +449,9 @@ bool M71310_application::user_create()
_msk->set_handler (F_QLMESEPAG, mese); _msk->set_handler (F_QLMESEPAG, mese);
_msk->set_handler (F_QLANNOPAG, anno); _msk->set_handler (F_QLANNOPAG, anno);
_msk->set_handler (F_QLCODTRIB, cod_tributo); _msk->set_handler (F_QLCODTRIB, cod_tributo);
_msk->set_handler (F_QLNUMERO, auto_premi); _msk->set_handler (F_QLNUMERO, auto_premi);
_msk->set_handler (F_NPROG, auto_premi); _msk->set_handler (F_CCQUIETANZA, auto_premi);
_msk->set_handler (F_NPROG, auto_premi);
_msk->set_handler (F_ARTBIL, artbil_hnd); _msk->set_handler (F_ARTBIL, artbil_hnd);
return TRUE; return TRUE;

View File

@ -80,9 +80,10 @@ BEGIN
OUTPUT F_ARTBIL QLAB OUTPUT F_ARTBIL QLAB
OUTPUT F_QLSERIE QLSERIE OUTPUT F_QLSERIE QLSERIE
OUTPUT F_ABI QLSERIE OUTPUT F_ABI QLSERIE
OUTPUT F_CAB QLNUMERO[1,5] OUTPUT F_CAB QLNUMERO[1,5]
OUTPUT F_NPROG QLNUMERO[6,11] OUTPUT F_NPROG QLNUMERO[6,11]
OUTPUT F_QLNUMERO QLNUMERO OUTPUT F_QLNUMERO QLNUMERO
OUTPUT F_CCQUIETANZA QLNUMERO
FIELD LF_QUAL->QLAP FIELD LF_QUAL->QLAP
FLAGS "R" FLAGS "R"
VALIDATE FIXLEN_FUNC 4 VALIDATE FIXLEN_FUNC 4
@ -119,8 +120,8 @@ END
LIST F_QLTIPOVERS 15 LIST F_QLTIPOVERS 15
BEGIN BEGIN
PROMPT 2 8 "Tipo versamento " PROMPT 2 8 "Tipo versamento "
ITEM " |Nessuno" // ITEM " |Nessuno"
MESSAGE HIDE,G_ABICAB@|HIDE,G_DISTINTA@|HIDE,G_CC@ // MESSAGE HIDE,G_ABICAB@|HIDE,G_DISTINTA@|HIDE,G_CC@
ITEM "B|Delega bancaria" ITEM "B|Delega bancaria"
MESSAGE RESET,G_CC@|HIDE,G_CC@|RESET,G_DISTINTA@|HIDE,G_DISTINTA@|SHOW,G_ABICAB@ MESSAGE RESET,G_CC@|HIDE,G_CC@|RESET,G_DISTINTA@|HIDE,G_DISTINTA@|SHOW,G_ABICAB@
ITEM "D|Distinta" ITEM "D|Distinta"

View File

@ -70,17 +70,17 @@ BEGIN
PROMPT 0 4 "Dati relativi al conguaglio di fine anno effettuato dai datori di lavoro" PROMPT 0 4 "Dati relativi al conguaglio di fine anno effettuato dai datori di lavoro"
END END
NUMBER F_ER92C93 15 NUMBER F_M1 15
BEGIN BEGIN
PROMPT 1 5 "Eccedenza di ritenute di fine 1994 compensata nel 1995 " PROMPT 1 5 "M1 Eccedenza di ritenute di fine 1994 compensata nel 1995 "
FIELD LF_BASEBIS->ECCRIT12 FIELD LF_BASEBIS->ECCRIT12
PICTURE "." PICTURE "."
FLAGS "R" FLAGS "R"
END END
NUMBER F_ER93C94 15 NUMBER F_M2 15
BEGIN BEGIN
PROMPT 1 6 "Eccedenza di ritenute di fine 1995 da compensare nel 1996 " PROMPT 1 6 "M2 Eccedenza di ritenute fine 1995 da compensare nel 1996 "
FIELD LF_BASEBIS->ECCRIT23 FIELD LF_BASEBIS->ECCRIT23
PICTURE "." PICTURE "."
FLAGS "R" FLAGS "R"
@ -91,36 +91,40 @@ BEGIN
PROMPT 0 8 "Prospetto riservato ai sostituti non tenuti a presentare la dichiarazione" PROMPT 0 8 "Prospetto riservato ai sostituti non tenuti a presentare la dichiarazione"
END END
NUMBER F_CRIMPDL357 15 NUMBER F_M3 15
BEGIN BEGIN
PROMPT 1 9 "Credito di imposta ex D.L.357/94 spettante " PROMPT 1 9 "M3 Credito di imposta ex D.L.357/94 spettante "
FIELD LF_BASEBIS->CRIMPDL FIELD LF_BASEBIS->CRIMPDL
PICTURE "." PICTURE "."
FLAGS "R" FLAGS "R"
// MESSAGE K_TAB,F_M6
END END
NUMBER F_CRIMPDL357 15 NUMBER F_M4 15
BEGIN BEGIN
PROMPT 1 10 "Credito di imposta utilizzato ai fini IVA " PROMPT 1 10 "M4 Credito di imposta utilizzato ai fini IVA "
FIELD LF_BASEBIS->CRIMPIVA FIELD LF_BASEBIS->CRIMPIVA
PICTURE "." PICTURE "."
FLAGS "R" FLAGS "R"
// MESSAGE K_TAB,F_M6
END END
NUMBER F_CRIMPDL357 15 NUMBER F_M5 15
BEGIN BEGIN
PROMPT 1 11 "Credito di imposta utilizzato per versamento ritenute " PROMPT 1 11 "M5 Credito imposta utilizzato per versamento ritenute "
FIELD LF_BASEBIS->CRIMPRIT FIELD LF_BASEBIS->CRIMPRIT
PICTURE "." PICTURE "."
FLAGS "R" FLAGS "R"
// MESSAGE K_TAB,F_M6
END END
NUMBER F_CRIMPDL357 15 NUMBER F_M6 15
BEGIN BEGIN
PROMPT 1 12 "Credito di imposta residuo " PROMPT 1 12 "M6 Credito di imposta residuo "
FIELD LF_BASEBIS->CRIMPRES FIELD LF_BASEBIS->CRIMPRES
PICTURE "." PICTURE "."
FLAGS "R" FLAGS "D"
// NUM_CALC {#F_M3-#F_M4-#F_M5}
END END
ENDPAGE ENDPAGE

View File

@ -16,8 +16,6 @@
// //
// 15.3.96 Allungata la stringa QCOMP per far spazio ai quadri A1-2-3 // 15.3.96 Allungata la stringa QCOMP per far spazio ai quadri A1-2-3
// //
#include <math.h>
#include <applicat.h> #include <applicat.h>
#include <mask.h> #include <mask.h>
#include <printapp.h> #include <printapp.h>
@ -27,9 +25,7 @@
#include <utility.h> #include <utility.h>
#include <config.h> #include <config.h>
#include <urldefid.h> #include <urldefid.h>
#include "774200.h" #include "774200.h"
#include "quadroa.h" #include "quadroa.h"
#include "quadroa3.h" #include "quadroa3.h"
#include "quadrob.h" #include "quadrob.h"
@ -710,13 +706,14 @@ bool TRiporti::set(const TString& quadro, int anno, const long codditta, const l
return TRUE; return TRUE;
} }
const int NUM_DIP_A = 9;
void TRiporti::calcola_riporti_A(TCursor* cur, const long dich) void TRiporti::calcola_riporti_A(TCursor* cur, const long dich)
{ {
TLocalisamfile base (LF_BASE); TLocalisamfile base (LF_BASE);
real totale,somme,ritenute; real totale,somme,ritenute;
bool almeno_una_riga = FALSE; bool almeno_una_riga = FALSE;
double dipendenti; long dipendenti,num_rec;
double num_rec;
real a0cobb,a0cnet,a0eprev,a0iitra,a0cter,a0timp,a0ilor,a0tdet,a0rter,a0rdat; real a0cobb,a0cnet,a0eprev,a0iitra,a0cter,a0timp,a0ilor,a0tdet,a0rter,a0rdat;
real a0erit,a0carr,a0aarr,a0darr,a0rarr,a0cinps,a0ciiaut,a0crimpras; real a0erit,a0carr,a0aarr,a0darr,a0rarr,a0cinps,a0ciiaut,a0crimpras;
@ -798,10 +795,9 @@ void TRiporti::calcola_riporti_A(TCursor* cur, const long dich)
} }
} }
double app = num_rec / 9; long fogli = num_rec / NUM_DIP_A;
double foglid = ceil(app); if (num_rec % NUM_DIP_A)
fogli++;
long fogli = (long)foglid;
// base.setkey(2); // base.setkey(2);
base.zero(); base.zero();
@ -843,54 +839,56 @@ void TRiporti::calcola_riporti_A(TCursor* cur, const long dich)
warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); warning_box("Dichiarazione non presente. Impossibile registrare i riporti");
} }
const int NUM_DIPENDENTI_MODULO_A3 = 35;
void TRiporti::calcola_riporti_A3(TCursor* cur, const long dich) void TRiporti::calcola_riporti_A3(TCursor* cur, const long dich)
{ {
TLocalisamfile base (LF_BASE); TLocalisamfile base (LF_BASE);
bool almeno_una_riga = FALSE; bool almeno_una_riga = FALSE;
double dipendenti; long dipendenti=0L, num_rec=0L;
double num_rec; real a3rept10=ZERO,a3rept12=ZERO;
real a3rept10,a3rept12;
a3rept10 = ZERO;
a3rept12 = ZERO;
dipendenti = 0;
num_rec = 0;
(*cur) = 0L; (*cur) = 0L;
TRecnotype items = cur->items(); TRecnotype items = cur->items();
TString scritta(60); TString scritta(60);
scritta.format("Calcolo riporti del quadro A3 per la ditta %ld", _codditta); scritta.format("Calcolo riporti del quadro A3 per la ditta %ld", _codditta);
TProgind progn(items, scritta, FALSE, TRUE); TProgind progn(items, scritta, FALSE, TRUE);
// fogli per l'elenco delle trasf.
int iFogliTrasf=0;
int iDipTrasf=0;
for (int i = 0; i < items; i++, ++(*cur)) for (int i = 0; i < items; i++, ++(*cur))
{ {
progn.addstatus(1); progn.addstatus(1);
const long coddip = cur->curr().get_long(QUA_CODIP);
long coddip = cur->curr().get_long(QUA_CODIP); const long nprog = cur->curr().get_long(QUA_NPROG);
if (!almeno_una_riga) if (!almeno_una_riga)
almeno_una_riga = TRUE; almeno_una_riga = TRUE;
if ( (cur->curr().get_real(QA3_REDCOR16) == ZERO) && (cur->curr().get_real(QA3_REDCOR18) == ZERO)) // Non conta quelli con redditto corrisposto = ZERO
if ((cur->curr().get_real(QA3_REDCOR16) == ZERO) && (cur->curr().get_real(QA3_REDCOR18) == ZERO))
continue; continue;
// nprog=2 se e' il record della trasformata. Conto i dip.con trasf. per
// contare i fogli
if (nprog == 2)
iDipTrasf++;
dipendenti++; dipendenti++;
a3rept10 += cur->curr().get_real(QA3_REDCOR16); a3rept10 += cur->curr().get_real(QA3_REDCOR16);
a3rept12 += cur->curr().get_real(QA3_REDCOR18); a3rept12 += cur->curr().get_real(QA3_REDCOR18);
} }
double app = dipendenti / 35; long fogli = dipendenti / NUM_DIPENDENTI_MODULO_A3;
double foglid = ceil(app); if (dipendenti % NUM_DIPENDENTI_MODULO_A3)
fogli++;
iFogliTrasf = iDipTrasf / NUM_DIPENDENTI_MODULO_A3;
if (iDipTrasf % NUM_DIPENDENTI_MODULO_A3)
iFogliTrasf++;
fogli += iFogliTrasf;
long fogli = (long)foglid;
// base.setkey(2);
base.zero(); base.zero();
if (dich) if (dich)
{ {
@ -1013,14 +1011,14 @@ void TRiporti::calcola_riporti_H(TCursor* cur, const long dich)
warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); warning_box("Dichiarazione non presente. Impossibile registrare i riporti");
} }
const int NUM_PERC_C = 36;
void TRiporti::calcola_riporti_C(TCursor* cur, const long dich) void TRiporti::calcola_riporti_C(TCursor* cur, const long dich)
{ {
TLocalisamfile base (LF_BASE); TLocalisamfile base (LF_BASE);
real totale,somme,ritenute,rTotCSSN; real totale,somme,ritenute,rTotCSSN;
bool almeno_una_riga = FALSE; bool almeno_una_riga = FALSE;
double percipienti; long percipienti=0L;
percipienti = 0;
totale = ZERO; totale = ZERO;
somme = ZERO; somme = ZERO;
@ -1061,10 +1059,9 @@ void TRiporti::calcola_riporti_C(TCursor* cur, const long dich)
progn.addstatus(1); progn.addstatus(1);
} }
double app = percipienti / 36; long fogli = percipienti / NUM_PERC_C;
double foglid = ceil(app); if (percipienti % NUM_PERC_C)
fogli++;
long fogli = (long)foglid;
// base.setkey(2); // base.setkey(2);
base.zero(); base.zero();
@ -1083,7 +1080,7 @@ void TRiporti::calcola_riporti_C(TCursor* cur, const long dich)
base.put(BSE_C0ACTOT, totale); base.put(BSE_C0ACTOT, totale);
base.put(BSE_C0SNSRIT, somme); base.put(BSE_C0SNSRIT, somme);
base.put(BSE_C0ROPE, ritenute); base.put(BSE_C0ROPE, ritenute);
base.put(BSE_C0SNSRIT, rTotCSSN); base.put(BSE_C0CONTSSN, rTotCSSN);
base.rewrite(); base.rewrite();
base.reread(_unlock); base.reread(_unlock);
setta_flag_quadri_comp(_codditta, C, almeno_una_riga, dich); setta_flag_quadri_comp(_codditta, C, almeno_una_riga, dich);
@ -1549,6 +1546,21 @@ void TRiporti::calcola_riporti_F(TCursor* cur, const long dich)
TString scritta(60); TString scritta(60);
scritta.format("Calcolo riporti del quadro F per la ditta %ld", _codditta); scritta.format("Calcolo riporti del quadro F per la ditta %ld", _codditta);
i20_4 = cur->curr().get_real(QF0_A1);
i20_5 = cur->curr().get_real(QF0_A2);
i20_6 = cur->curr().get_real(QF0_A3);
i21_1 = cur->curr().get_real(QF0_A4);
e_sogrit = cur->curr().get_real(QF0_ESOGRIT);
f_sogrit = cur->curr().get_real(QF0_FSOGRIT);
e_rope = cur->curr().get_real(QF0_EROPE);
f_rope = cur->curr().get_real(QF0_FROPE);
// Per stabilire se il quadro e' stato compilato verifica anche i campi
// fuori dagli spreadsheet
almeno_una_riga = i20_4 != ZERO || i20_5 != ZERO || i20_6 != ZERO ||
i21_1 != ZERO || e_sogrit != ZERO || f_sogrit != ZERO || e_rope != ZERO ||
f_rope != ZERO;
rf = new TLocalisamfile(LF_RIGHEF); rf = new TLocalisamfile(LF_RIGHEF);
TRectype dep(rf->curr()); TRectype dep(rf->curr());
@ -1582,14 +1594,6 @@ void TRiporti::calcola_riporti_F(TCursor* cur, const long dich)
i20_1 = a_sogrit; i20_1 = a_sogrit;
i20_2 = a_rope; i20_2 = a_rope;
i20_3 = a_totacc; i20_3 = a_totacc;
i20_4 = cur->curr().get_real(QF0_A1);
i20_5 = cur->curr().get_real(QF0_A2);
i20_6 = cur->curr().get_real(QF0_A3);
i21_1 = cur->curr().get_real(QF0_A4);
e_sogrit = cur->curr().get_real(QF0_ESOGRIT);
f_sogrit = cur->curr().get_real(QF0_FSOGRIT);
e_rope = cur->curr().get_real(QF0_EROPE);
f_rope = cur->curr().get_real(QF0_FROPE);
for (i = 1; i <= _prosp_b->last_row(); i++) for (i = 1; i <= _prosp_b->last_row(); i++)
{ {
@ -1828,7 +1832,7 @@ void TRiporti::calcola_riporti_G(TCursor* cur, const long dich)
real i24_1, i24_2, i24_3, i24_4, i24_5, i24_6; real i24_1, i24_2, i24_3, i24_4, i24_5, i24_6;
real i24_7, i24_8, i24_9, i24_10, i24_11, i24_12; real i24_7, i24_8, i24_9, i24_10, i24_11, i24_12;
real i24_13, i25_4; real i24_13, i25_4;
bool almeno_una_riga=FALSE, almeno_una_riga_distinta=FALSE; bool almeno_una_riga=FALSE, almeno_una_riga_distinta=FALSE,almeno_una_riga_prospetti=FALSE;
long fogli_comp = 0L, percipienti=0L; long fogli_comp = 0L, percipienti=0L;
TRelation* relp; TRelation* relp;
TCursor* curp; TCursor* curp;
@ -1852,7 +1856,8 @@ void TRiporti::calcola_riporti_G(TCursor* cur, const long dich)
i24_7 = cur->curr().get_real(QG_P35TOT); i24_7 = cur->curr().get_real(QG_P35TOT);
i24_8 = cur->curr().get_real(QG_P36TOT); i24_8 = cur->curr().get_real(QG_P36TOT);
i24_9 = cur->curr().get_real(QG_P37TOT); i24_9 = cur->curr().get_real(QG_P37TOT);
almeno_una_riga = i24_2 != ZERO || i24_3 != ZERO || i24_4 != ZERO almeno_una_riga_prospetti = i24_2 != ZERO || i24_3 != ZERO
|| i24_4 != ZERO
|| i24_5 != ZERO || i24_6 != ZERO || i24_7 != ZERO || i24_5 != ZERO || i24_6 != ZERO || i24_7 != ZERO
|| i24_8 != ZERO || i24_9 != ZERO; || i24_8 != ZERO || i24_9 != ZERO;
@ -1898,9 +1903,12 @@ void TRiporti::calcola_riporti_G(TCursor* cur, const long dich)
} }
// E' compilato se c'e' qualcosa nel G o nella distinta fax 15.7.96 p.1 // E' compilato se c'e' qualcosa nel G o nella distinta fax 15.7.96 p.1
almeno_una_riga = almeno_una_riga || almeno_una_riga_distinta; almeno_una_riga = almeno_una_riga_prospetti || almeno_una_riga_distinta;
fogli_comp = fogli_compilati(fisiche,no_fisiche,QGD_FISICHE_PER_FOGLIO,QGD_NOFISICHE_PER_FOGLIO); fogli_comp = fogli_compilati(fisiche,no_fisiche,QGD_FISICHE_PER_FOGLIO,QGD_NOFISICHE_PER_FOGLIO);
// Considera un foglio in piu' per la parte del G (prospetti 1-2-3-4)
if (almeno_una_riga_prospetti)
fogli_comp++;
basebis.setkey(1); basebis.setkey(1);
basebis.zero(); basebis.zero();

View File

@ -12,7 +12,7 @@ bool filter_func (const TRelation *);
enum {A,A1,A2,A3,B,B1,C,D,D1,E,E1,E2,F,F1,F2,G,G1,H,I,N,P,Q,R,S,T}; enum {A,A1,A2,A3,B,B1,C,D,D1,E,E1,E2,F,F1,F2,G,G1,H,I,N,P,Q,R,S,T};
const int CAMPI_IB1 = 60; const int CAMPI_IB1 = 61;
const int CAMPI_IB2 = 50; const int CAMPI_IB2 = 50;
const int CAMPI_A = 53; const int CAMPI_A = 53;
@ -23,7 +23,7 @@ HIDDEN const char* _campi_I1[CAMPI_IB1] = { BSE_A0NFCOM,BSE_A0NLDIP,BSE_A0COBB,B
BSE_A0NACAAF,BSE_B0NFCOM,BSE_B0NLDIP,BSE_B0TFR93,BSE_B0AI,BSE_B0COLAV, BSE_A0NACAAF,BSE_B0NFCOM,BSE_B0NLDIP,BSE_B0TFR93,BSE_B0AI,BSE_B0COLAV,
BSE_B0TFR7492,BSE_B0AI7492,BSE_B0RITSI,BSE_B0IMP,BSE_B0TIMP,BSE_B0ROP, BSE_B0TFR7492,BSE_B0AI7492,BSE_B0RITSI,BSE_B0IMP,BSE_B0TIMP,BSE_B0ROP,
BSE_B0AIINPS,BSE_B0ROPESA,BSE_B0CIIAUT,BSE_B1NFCOM,BSE_B1NPER,BSE_B1TIND, BSE_B0AIINPS,BSE_B0ROPESA,BSE_B0CIIAUT,BSE_B1NFCOM,BSE_B1NPER,BSE_B1TIND,
BSE_B1TIRM,BSE_B1TICOM,BSE_C0NFCOM,BSE_C0NLASS,BSE_C0ACTOT,BSE_C0SNSRIT, BSE_B1TIRM,BSE_B1TICOM,BSE_C0NFCOM,BSE_C0NLASS,BSE_C0ACTOT,BSE_C0CONTSSN,BSE_C0SNSRIT,
BSE_C0ROPE,BSE_C0CIIAUT,BSE_D0NFCOM,BSE_D0NLAUT,BSE_D0ACTOT,BSE_D0SNSRIT, BSE_C0ROPE,BSE_C0CIIAUT,BSE_D0NFCOM,BSE_D0NLAUT,BSE_D0ACTOT,BSE_D0SNSRIT,
BSE_D0ROPE,BSE_D0CIIAUT,BSE_D1NFCOM,BSE_D1NPER,BSE_D1TACOR,BSE_D1SNSRIT, BSE_D0ROPE,BSE_D0CIIAUT,BSE_D1NFCOM,BSE_D1NPER,BSE_D1TACOR,BSE_D1SNSRIT,
BSE_D1ROPE}; BSE_D1ROPE};

636
m770/77base1.frm Executable file
View File

@ -0,0 +1,636 @@
USE 36
JOIN 37 TO 36 INTO TIPOQUA=TIPOQUA CODDITTA=CODDITTA
JOIN 9 TO 36 INTO CODDITTA=CODDITTA
JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR
JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC
JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES)
JOIN 6 TO 36 ALIAS 216 INTO CODANAGR=RAPPR
JOIN 13 TO 216@ ALIAS 313 INTO COM=COMNASC
JOIN 13 TO 216@ ALIAS 413 INTO COM=COMRF(COMRES)
END
DESCRIPTION
BEGIN
36->* "Base 770"
37->* "Basebis 770"
9->* "Ditte"
6->* "LF_ANAG Anagrafica persone fisiche e giuridiche"
8->* "Anagrafica persone fisiche"
116@->* "Comuni"
118@->* "Comuni"
END
GENERAL
BEGIN
OFFSET 0 0
FONT "Courier 17cpi"
SIZE 10
CA "X"
IN 3 2
FI 131
END
SECTION BODY FIRST 73
LISTA 1
BEGIN
KEY "Tipo anagrafica: ABILITA PERSONE FISICHE/ALTRI SOGGETTI"
FIELD 9->TIPOA
ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@
ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@
FLAGS "H"
END
STRINGA 2
BEGIN
KEY "GRUPPO 1 - PERSONE FISICHE - CODICE FISCALE"
PROMPT 22 13 ""
FIELD 116@->COFI
GROUP 1
END
LISTA 3
BEGIN
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
PROMPT 90 13 ""
ITEM "1|X"
ITEM "2|"
ITEM "3|"
FIELD 36->RSS
GROUP 1
END
LISTA 4
BEGIN
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
PROMPT 98 13 ""
ITEM "1|"
ITEM "2|X"
ITEM "3|"
FIELD 36->RSS
GROUP 1
END
LISTA 5
BEGIN
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
PROMPT 107 13 ""
ITEM "1|"
ITEM "2|"
ITEM "3|X"
FIELD 36->RSS
GROUP 1
END
STRINGA 6
BEGIN
KEY "CODICE ATTIVITA"
PROMPT 119 13 ""
FIELD 9->CODATTPREV
GROUP 1
END
STRINGA 7
BEGIN
KEY "COGNOME"
PROMPT 22 15 ""
FIELD 116@->RAGSOC[1,30]
GROUP 1
END
STRINGA 8
BEGIN
KEY "NOME"
PROMPT 80 15 ""
FIELD 116@->RAGSOC[31,50]
GROUP 1
END
LISTA 9
BEGIN
KEY "SESSO M"
PROMPT 119 15 ""
ITEM "M|X"
ITEM "F|"
FIELD 118@->SESSO
GROUP 1
END
LISTA 10
BEGIN
KEY "SESSO F"
PROMPT 127 15 ""
ITEM "M|"
ITEM "F|X"
FIELD 118@->SESSO
GROUP 1
END
STRINGA 11
BEGIN
KEY "DATA DI NASCITA"
PROMPT 22 17 ""
FIELD 118@->DATANASC
FORMAT "1444-"
PICTURE "## ^ ##^^^^^"
GROUP 1
END
STRINGA 12
BEGIN
KEY "COMUNE DI NASCITA"
PROMPT 44 17 ""
FIELD 113@->DENCOM
GROUP 1
END
STRINGA 13
BEGIN
KEY "PROV. DI NASCITA"
PROMPT 100 17 ""
FIELD 113@->PROVCOM
GROUP 1
END
STRINGA 14
BEGIN
KEY "EVENTI ECCEZIONALI"
PROMPT 127 17 ""
FIELD 116@->EVECC
GROUP 1
END
STRINGA 15
BEGIN
KEY "COMUNE DI RES.FISCALE"
PROMPT 41 19 ""
FIELD 213@->DENCOM
GROUP 1
END
STRINGA 16
BEGIN
KEY "PROV DI RES.FISCALE"
PROMPT 100 19 ""
FIELD 213@->PROVCOM
GROUP 1
END
STRINGA 17
BEGIN
KEY "CAP"
PROMPT 119 19 ""
FIELD 116@->CAPRF
FIELD 116@->CAPRES
GROUP 1
END
STRINGA 18
BEGIN
KEY "VIA di RES."
PROMPT 41 21 ""
FIELD 116@->INDRF
FIELD 116@->INDRES
GROUP 1
END
STRINGA 19
BEGIN
KEY "NUM. CIVICO di RES."
PROMPT 102 13 ""
FIELD 116@->CIVRF
FIELD 116@->CIVRES
FLAGS "H"
GROUP 1
END
STRINGA 20
BEGIN
KEY "TELEFONO - PREFISSO"
PROMPT 100 21 ""
FIELD 116@->PTELRF
END
STRINGA 21
BEGIN
KEY "TELEFONO - NUMERO"
PROMPT 112 21 ""
FIELD 116@->TELRF
END
STRINGA 22
BEGIN
KEY "GRUPPO 2 - ALTRI SOGGETTI - CODICE FISCALE"
PROMPT 22 23 ""
FIELD 116@->COFI
GROUP 2
END
LISTA 23
BEGIN
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
PROMPT 90 23 ""
ITEM "1|X"
ITEM "2|"
ITEM "3|"
FIELD 36->RSS
GROUP 2
END
LISTA 24
BEGIN
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
PROMPT 98 23 ""
ITEM "1|"
ITEM "2|X"
ITEM "3|"
FIELD 36->RSS
GROUP 2
END
LISTA 25
BEGIN
KEY "REG.A.STATUTO.SPECIALE VA - SA -SI"
PROMPT 107 23 ""
ITEM "1|"
ITEM "2|"
ITEM "3|X"
FIELD 36->RSS
GROUP 2
END
STRINGA 26
BEGIN
KEY "CODICE ATTIVITA"
PROMPT 119 23 ""
FIELD 9->CODATTPREV
GROUP 2
END
STRINGA 27
BEGIN
KEY "RAGIONE SOCIALE"
PROMPT 22 25 ""
FIELD 116@->RAGSOC
GROUP 2
END
STRINGA 28
BEGIN
KEY "EVENTI ECCEZIONALI"
PROMPT 127 25 ""
FIELD 116@->EVECC
GROUP 2
END
STRINGA 29
BEGIN
KEY "FLAG SEDE LEGALE"
GROUP 2
END
STRING 30
BEGIN
KEY "COMUNE SEDE LEGALE "
PROMPT 39 27 ""
FIELD 413@->DENCOM
GROUP 2
END
STRING 31
BEGIN
KEY "PROV. SEDE LEGALE"
PROMPT 119 27 ""
FIELD 413@->PROVCOM
GROUP 2
END
STRING 32
BEGIN
KEY "VIA SEDE LEGALE"
PROMPT 39 27 ""
FIELD 216@->INDRES[1,18]
FLAGS "H"
MESSAGE COPY,12|COPY,107
END
STRING 33
BEGIN
KEY "NUM.CIV"
PROMPT 93 4 ""
FLAGS "H"
FIELD 216@->CIVRES
MESSAGE APPEND,12|APPEND,107
END
STRING 34
BEGIN
KEY "VIA SEDE LEGALE"
PROMPT 39 27 ""
GROUP 2
END
STRINGA 35
BEGIN
KEY "CAP"
PROMPT 119 27 ""
FIELD 116@->CAPRF
FIELD 116@->CAPRES
GROUP 2
END
STRING 36
BEGIN
KEY "COMUNE DI RESIDENZA FISCALE"
PROMPT 39 29 ""
FIELD 413@->DENCOM
GROUP 2
END
STRING 37
BEGIN
KEY "PROV. RESIDENZA FISCALE"
PROMPT 119 29 ""
FIELD 413@->PROVCOM
GROUP 2
END
STRING 38
BEGIN
KEY "VIA RESIDENZA FISCALE"
PROMPT 39 29 ""
FIELD 216@->INDRES[1,18]
FLAGS "H"
MESSAGE COPY,12|COPY,107
END
STRING 39
BEGIN
KEY "NUM.CIV"
PROMPT 93 4 ""
FLAGS "H"
FIELD 216@->CIVRES
MESSAGE APPEND,12|APPEND,107
END
STRING 40
BEGIN
KEY "VIA RES FISCALE"
PROMPT 39 29 ""
GROUP 2
END
STRINGA 41
BEGIN
KEY "CAP"
PROMPT 119 29 ""
FIELD 116@->CAPRF
GROUP 2
END
STRINGA 42
BEGIN
KEY "DATA APP.BILANCIO gg-mm-aaa"
PROMPT 29 31 ""
FORMAT "1444-"
PICTURE "## ^ ##^^^^^"
GROUP 2
END
STRINGA 43
BEGIN
KEY "Termine per APP.BILANCIO gg-mm-aaa"
PROMPT 88 31 ""
FORMAT "1444-"
PICTURE "## ^ ##^^^^^"
GROUP 2
END
STRINGA 48
BEGIN
KEY "STATO"
PROMPT 29 33 ""
FIELD 118@->STATOSOC
GROUP 2
END
STRINGA 49
BEGIN
KEY "NAT.GIURIDICA"
PROMPT 49 33 ""
FIELD 118@->NATGIU
GROUP 2
END
STRINGA 50
BEGIN
KEY "SITUAZIONE"
PROMPT 73 33 ""
FIELD 118@->SITSOC
GROUP 2
END
STRINGA 51
BEGIN
KEY "TELEFONO - PREF"
PROMPT 99 33 ""
GROUP 2
END
STRINGA 52
BEGIN
KEY "TELEFONO - NUMERO"
PROMPT 110 33 ""
GROUP 2
END
NUMBER 53
BEGIN
KEY "NUMERO ESTINTI"
PROMPT 66 35 ""
END
STRINGA 54
BEGIN
KEY "Dati RAPP. - COFI"
PROMPT 22 37 ""
FIELD 216@->COFI
END
LISTA 55
BEGIN
KEY "CODICE CARICA 1"
PROMPT 85 37 ""
ITEM "1|X"
ITEM "2|"
ITEM "3|"
ITEM "4|"
ITEM "5|"
ITEM "6|"
FIELD 36->CARRAPP
END
LISTA 56
BEGIN
KEY "CODICE CARICA 2"
PROMPT 94 37 ""
ITEM "1|"
ITEM "2|X"
ITEM "3|"
ITEM "4|"
ITEM "5|"
ITEM "6|"
FIELD 36->CARRAPP
END
LISTA 57
BEGIN
KEY "CODICE CARICA 3"
PROMPT 102 37 ""
ITEM "1|"
ITEM "2|"
ITEM "3|X"
ITEM "4|"
ITEM "5|"
ITEM "6|"
FIELD 36->CARRAPP
END
LISTA 58
BEGIN
KEY "CODICE CARICA 4"
PROMPT 110 37 ""
ITEM "1|"
ITEM "2|"
ITEM "3|"
ITEM "4|X"
ITEM "5|"
ITEM "6|"
FIELD 36->CARRAPP
END
LISTA 59
BEGIN
KEY "CODICE CARICA 5"
PROMPT 119 37 ""
ITEM "1|"
ITEM "2|"
ITEM "3|"
ITEM "4|"
ITEM "5|X"
ITEM "6|"
FIELD 36->CARRAPP
END
LISTA 60
BEGIN
KEY "CODICE CARICA 6"
PROMPT 127 37 ""
ITEM "1|"
ITEM "2|"
ITEM "3|"
ITEM "4|"
ITEM "5|"
ITEM "6|X"
FIELD 36->CARRAPP
END
STRINGA 61
BEGIN
KEY "RAPP.COGNOME"
PROMPT 22 39 ""
FIELD 216@->RAGSOC[1,30]
END
STRINGA 62
BEGIN
KEY "RAPP.NOME"
PROMPT 80 39 ""
FIELD 216@->RAGSOC[31,50]
END
LISTA 63
BEGIN
KEY "RAPP.SESSO"
PROMPT 119 39 ""
ITEM "M|X"
ITEM "F|"
ITEM "|"
FIELD 216@->SESSO
END
LISTA 64
BEGIN
KEY "RAPP.SESSO"
PROMPT 127 39 ""
ITEM "M|"
ITEM "F|X"
ITEM "|"
FIELD 216@->SESSO
END
STRINGA 65
BEGIN
KEY "RAPP.DATANAGG"
PROMPT 22 41 ""
FORMAT "1444-"
PICTURE "## ^ ##^^^^^"
FIELD 216@->DATANASC
END
STRINGA 68
BEGIN
KEY "COMUNE NA"
PROMPT 46 41 ""
FIELD 313@->DENCOM
END
STRINGA 69
BEGIN
KEY "PROV NA"
PROMPT 119 41 ""
FIELD 313@->PROVCOM
END
STRINGA 70
BEGIN
KEY "COMUNE RES"
PROMPT 41 43 ""
FIELD 413@->DENCOM
END
STRINGA 71
BEGIN
KEY "PROV RES"
PROMPT 99 43 ""
FIELD 413@->PROVCOM
END
STRINGA 72
BEGIN
KEY "CAP RES"
PROMPT 119 43 ""
FIELD 413@->CAPRF
FIELD 413@->CAPRES
END
STRINGA 73
BEGIN
KEY "IND RES"
PROMPT 41 45 ""
FIELD 413@->INDRF
FIELD 413@->INDRES
END
STRINGA 74
BEGIN
KEY "TELEFONO PREFISSO"
PROMPT 99 45 ""
FIELD 216@->PTELRF
END
STRINGA 75
BEGIN
KEY "TELEFONO NUMERO"
PROMPT 111 45 ""
FIELD 216@->TELRF
END
END

View File

@ -338,7 +338,7 @@ class TVersamento_stampa : public TVersamento
//////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////
typedef enum { nessuno=0, fattura=1, pagamento=3, versamento=4, typedef enum { nessuno=0, fattura=1, pagamento=3, versamento=4,
ritenuta=6, pagamento_piu_perc=7 } TTipo_coll; occasionale=6, pagamento_piu_perc=7 } TTipo_coll;
struct TLink770 struct TLink770
{ {

View File

@ -55,6 +55,7 @@
#define RICERCA_DIP 4 #define RICERCA_DIP 4
#define RICERCA_QB 5 #define RICERCA_QB 5
#define GROUP_ALL 6 #define GROUP_ALL 6
#define G_DISABILI 7
#define QBG_ANADIP 1 #define QBG_ANADIP 1
#define QBG_QUADROB 2 #define QBG_QUADROB 2

View File

@ -182,25 +182,9 @@ BEGIN
FLAGS "R" FLAGS "R"
END END
NUMBER F_UTPAG 15
BEGIN
PROMPT 2 14 "Utili pagati "
FIELD LF_QUAGD->UTPAG
PICTURE "."
FLAGS "R"
END
NUMBER F_ROPE 15
BEGIN
PROMPT 40 14 "Rit. utili pagati "
FIELD LF_QUAGD->ROPE
PICTURE "."
FLAGS "R"
END
NUMBER F_UTSPETT 15 NUMBER F_UTSPETT 15
BEGIN BEGIN
PROMPT 2 16 "Utili spettanti " PROMPT 2 14 "Utili spettanti "
FIELD LF_QUAGD->UTSPETT FIELD LF_QUAGD->UTSPETT
PICTURE "." PICTURE "."
FLAGS "R" FLAGS "R"
@ -208,12 +192,28 @@ END
NUMBER F_ROPESPET 15 NUMBER F_ROPESPET 15
BEGIN BEGIN
PROMPT 40 16 "Rit.ut. spettanti " PROMPT 40 14 "Rit.ut. spettanti "
FIELD LF_QUAGD->ROPESPET FIELD LF_QUAGD->ROPESPET
PICTURE "." PICTURE "."
FLAGS "R" FLAGS "R"
END END
NUMBER F_UTPAG 15
BEGIN
PROMPT 2 16 "Utili pagati "
FIELD LF_QUAGD->UTPAG
PICTURE "."
FLAGS "R"
END
NUMBER F_ROPE 15
BEGIN
PROMPT 40 16 "Rit. utili pagati "
FIELD LF_QUAGD->ROPE
PICTURE "."
FLAGS "R"
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -89,6 +89,7 @@
#define BSE_FLART4 "FLART4" #define BSE_FLART4 "FLART4"
#define BSE_QSUPPRIC "QSUPPRIC" #define BSE_QSUPPRIC "QSUPPRIC"
#define BSE_DITTACAAF "DITTACAAF" #define BSE_DITTACAAF "DITTACAAF"
#define BSE_C0CONTSSN "C0CONTSSN"
#define I8_1 "B0NFCOM" #define I8_1 "B0NFCOM"
#define I8_2 "B0NLDIP" #define I8_2 "B0NLDIP"

View File

@ -23,5 +23,8 @@
#define TCF_COMMINPS 118 #define TCF_COMMINPS 118
#define TCF_PERCASSPREV 119 #define TCF_PERCASSPREV 119
#define G_INPS 10
#define INPS_GROUP 7
#define GR_CAUDD1 8
#define G_ICTS 9

View File

@ -3,10 +3,6 @@ TOOLBAR "" 0 20 0 2
#include <toolbar.h> #include <toolbar.h>
ENDPAGE ENDPAGE
#define INPS_GROUP 7
#define GR_CAUDD1 8
#define G_ICTS 9
PAGE "Tabella causali modello 770" -1 -1 78 18 PAGE "Tabella causali modello 770" -1 -1 78 18
GROUPBOX DLG_NULL 77 8 GROUPBOX DLG_NULL 77 8
@ -54,20 +50,19 @@ LIST F_QUADRCE2 2
BEGIN BEGIN
PROMPT 1 3 "Codice quadro " PROMPT 1 3 "Codice quadro "
HELP "Inserire il codice quadro" HELP "Inserire il codice quadro"
ITEM "| "
MESSAGE DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "C|C" ITEM "C|C"
MESSAGE ENABLE,F_CT|DISABLE,F_IC|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|ENABLE,F_CT|DISABLE,F_IC|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "D|D" ITEM "D|D"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD1|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE ENABLE,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD1|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "D1|D1" ITEM "D1|D1"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD|DISABLE,GR_CAUDD1@||ENABLE,TCF_CAUSD1|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE ENABLE,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD|DISABLE,GR_CAUDD1@||ENABLE,TCF_CAUSD1|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "E|E" ITEM "E|E"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "E1|E1" ITEM "E1|E1"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
MESSAGE COPY,F_CODQUA MESSAGE COPY,F_CODQUA
WARNING "Manca il codice quadro" WARNING "Manca il codice quadro"
CHECKTYPE REQUIRED
FIELD LF_TABCOM->S1 FIELD LF_TABCOM->S1
END END
@ -75,57 +70,56 @@ LIST F_QUADRAT 2
BEGIN BEGIN
PROMPT 1 3 "Codice quadro " PROMPT 1 3 "Codice quadro "
HELP "Inserire il codice quadro" HELP "Inserire il codice quadro"
ITEM "| "
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "A|A" ITEM "A|A"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "A1|A1" ITEM "A1|A1"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "A2|A2" ITEM "A2|A2"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "A3|A3" ITEM "A3|A3"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "B|B" ITEM "B|B"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "B1|B1" ITEM "B1|B1"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "C|C" ITEM "C|C"
MESSAGE ENABLE,F_CT|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|ENABLE,F_IC|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|ENABLE,F_CT|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|ENABLE,F_IC|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "D|D" ITEM "D|D"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD1|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE ENABLE,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD1|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "D1|D1" ITEM "D1|D1"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD1|DISABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE ENABLE,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD1|DISABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "E|E" ITEM "E|E"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "E1|E1" ITEM "E1|E1"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "E2|E2" ITEM "E2|E2"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|HIDE,F_DESCR1|SHOW,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|HIDE,F_DESCR1|SHOW,F_DESCR2
ITEM "F|F" ITEM "F|F"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "F1|F1" ITEM "F1|F1"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "F2|F2" ITEM "F2|F2"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|HIDE,F_DESCR1|SHOW,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|HIDE,F_DESCR1|SHOW,F_DESCR2
ITEM "G|G" ITEM "G|G"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "G1|G1" ITEM "G1|G1"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "N|N" ITEM "N|N"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "P|P" ITEM "P|P"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "Q|Q" ITEM "Q|Q"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "R|R" ITEM "R|R"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "S|S" ITEM "S|S"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
ITEM "T|T" ITEM "T|T"
MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 MESSAGE CLEAR,G_INPS@|RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2
MESSAGE COPY,F_QUADRCE2 MESSAGE COPY,F_QUADRCE2
MESSAGE COPY,F_CODQUA MESSAGE COPY,F_CODQUA
WARNING "Manca il codice quadro" WARNING "Manca il codice quadro"
CHECKTYPE REQUIRED
FIELD LF_TABCOM->S1 FIELD LF_TABCOM->S1
END END
@ -323,6 +317,7 @@ BOOLEAN TCF_BINPS
BEGIN BEGIN
PROMPT 1 14 "Contributo INPS " PROMPT 1 14 "Contributo INPS "
FIELD LF_TABCOM->B4 FIELD LF_TABCOM->B4
GROUP G_INPS
MESSAGE TRUE ENABLE,INPS_GROUP@ MESSAGE TRUE ENABLE,INPS_GROUP@
MESSAGE FALSE DISABLE,INPS_GROUP@ MESSAGE FALSE DISABLE,INPS_GROUP@
END END

View File

@ -20,6 +20,7 @@ class TQuadriBB1_application : public TRelation_application
static bool QBTotRedImpHandler (TMask_field& f, KEY k); static bool QBTotRedImpHandler (TMask_field& f, KEY k);
static bool QBAmmRopeHandler (TMask_field& f, KEY k); static bool QBAmmRopeHandler (TMask_field& f, KEY k);
static bool QBTotIndennHandler (TMask_field& f, KEY k); static bool QBTotIndennHandler (TMask_field& f, KEY k);
static bool QBCalcola37 (TMask_field& f, KEY k);
static void BB1SettaCognomeNome(TMask& m); static void BB1SettaCognomeNome(TMask& m);
const char* _maskname; const char* _maskname;
int _num; int _num;
@ -167,6 +168,8 @@ TMask* TQuadriBB1_application::load_mask(int n)
m->set_handler(QBF_CONTLAV, QBTotIndennHandler); m->set_handler(QBF_CONTLAV, QBTotIndennHandler);
m->set_handler(QBF_TFR7494, QBTotIndennHandler); m->set_handler(QBF_TFR7494, QBTotIndennHandler);
m->set_handler(QBF_INDEN7494, QBTotIndennHandler); m->set_handler(QBF_INDEN7494, QBTotIndennHandler);
m->set_handler(QBF_TIND7494, QBCalcola37); // 28
m->set_handler(QBF_TRID, QBCalcola37); // 29
} }
// m->disable(DLG_FINDREC); // m->disable(DLG_FINDREC);
break; break;
@ -176,6 +179,22 @@ TMask* TQuadriBB1_application::load_mask(int n)
return _msk[n] = m; return _msk[n] = m;
} }
bool TQuadriBB1_application::QBCalcola37(TMask_field& f, KEY k)
{
if (k==K_TAB)
{
TMask& m=f.mask();
real c28=m.get_real(QBF_TIND7494);
real c29=m.get_real(QBF_TRID);
real c37 = c28 - c29;
if (c37 < ZERO)
c37 = ZERO;
TString c37s(c37.string());
m.set(QBF_TOTIMP,c37s);
}
return TRUE;
}
bool TQuadriBB1_application::MaskConAnnoDic() const bool TQuadriBB1_application::MaskConAnnoDic() const
{ {
return _MaskConAnnoDic; return _MaskConAnnoDic;
@ -588,8 +607,12 @@ bool TQuadriBB1_application::QBTotIndennHandler(TMask_field& f, KEY k)
real c27 = m.get_real(QBF_INDEN7494); real c27 = m.get_real(QBF_INDEN7494);
real c28 = c20 + c24 - c25 + c26 + c27; real c28 = c20 + c24 - c25 + c26 + c27;
if (c28 < ZERO)
c28 = ZERO;
TString c28s(c28.string()); TString c28s(c28.string());
m.set(QBF_TIND7494, c28s); m.set(QBF_TIND7494, c28s);
// Ricalcola il 37 da qui perche' il 28 e' disabilitato
QBCalcola37(f,k);
} }
} }
return TRUE; return TRUE;

View File

@ -173,7 +173,7 @@ bool TQuadriNT_application::CheckImporti(const TMask& m)
int TQuadriNT_application::rewrite(const TMask& m) int TQuadriNT_application::rewrite(const TMask& m)
{ {
m.autosave(*_rel); m.autosave(_rel);
const int err = _rel->rewrite(); const int err = _rel->rewrite();
_registra = err == NOERR; _registra = err == NOERR;
return err; return err;
@ -181,7 +181,7 @@ int TQuadriNT_application::rewrite(const TMask& m)
int TQuadriNT_application::write(const TMask& m) int TQuadriNT_application::write(const TMask& m)
{ {
m.autosave(*_rel); m.autosave(_rel);
const int err = _rel->write(); const int err = _rel->write();
_registra = err == NOERR; _registra = err == NOERR;
return err; return err;