Correzioni quasi ultime immissione

git-svn-id: svn://10.65.10.50/trunk@3202 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1996-07-18 10:04:12 +00:00
parent d4c7ef3b76
commit 575590459b
29 changed files with 1142 additions and 397 deletions

View File

@ -133,8 +133,8 @@ END
NUMBER 107 6 NUMBER 107 6
BEGIN BEGIN
PROMPT 2 6 "Progressivo per versamento banca " PROMPT 2 6 "Progressivo per versamento banca "
FLAGS "DZ" // FLAGS "DZ"
// FLAGS "Z" FLAGS "Z"
GROUP 2 6 GROUP 2 6
END END

View File

@ -236,12 +236,15 @@ void TSchedaPercipienti::ver_pack()
void TSchedaPercipienti::load_pag_sheet(const long numvers) void TSchedaPercipienti::load_pag_sheet(const long numvers)
{ {
real comp, spese, imp, ritpag; real comp, spese, imp, ritpag;
int i, nriga; int i, iNumRigaAS;
TSheet_field& pag = pags(); TSheet_field& pag = pags();
_pags->destroy(); _pags->destroy();
for ( i = 0, nriga = 0; i < pag.items(); i++, nriga++ ) iNumRigaAS = 0; // numero di riga dell'array-sheet. Viene incrementato
// solo quando si trovano pagamenti 'giusti' (cioe' solo
// quando si aggiungono elementi all'array-sheet)
for ( i = 0; i < pag.items(); i++)
{ {
TToken_string* d = new TToken_string(64); TToken_string* d = new TToken_string(64);
TToken_string& riga = pag.row(i); TToken_string& riga = pag.row(i);
@ -256,11 +259,7 @@ void TSchedaPercipienti::load_pag_sheet(const long numvers)
if (nvers > 0 && nvers != numvers) if (nvers > 0 && nvers != numvers)
continue; continue;
const long npag = nriga; const long npag = i;
// Setto il bit alla posizione numpag
if (nvers == numvers)
_selected.set(npag);
const int LARGHEZZA_COL = 15; const int LARGHEZZA_COL = 15;
d->add(" "); // 0 spazio per la 'X' di selezione d->add(" "); // 0 spazio per la 'X' di selezione
@ -283,11 +282,20 @@ void TSchedaPercipienti::load_pag_sheet(const long numvers)
dep.right_just(LARGHEZZA_COL); dep.right_just(LARGHEZZA_COL);
d->add(dep); d->add(dep);
d->add(nriga, SS_POS_NRIGA); d->add(i, SS_POS_NRIGA);
// Metto nell'array-sheet anche NUMVERS // Metto nell'array-sheet anche NUMVERS
d->add(nvers, SS_POS_NVER); d->add(nvers, SS_POS_NVER);
_pags->add(*d); // aggiungo la riga nell'array_sheet _pags->add(*d); // aggiungo la riga nell'array_sheet
// Setto il bit alla posizione numpag e metto la X
if (nvers == numvers)
{
_selected.set(npag);
_pags->check(iNumRigaAS, TRUE);
}
iNumRigaAS++; // ignoro in questo contatore i pagamenti che NON
// si vedono (se il pagamento e' scartato prima di qui
// non ci passa)
} }
} }
@ -474,10 +482,11 @@ bool TSchedaPercipienti::pag_select (TMask_field& f, KEY k)
app().load_pag_sheet(numvers); app().load_pag_sheet(numvers);
TNikArray_sheet& ASpags = *app()._pags; TNikArray_sheet& ASpags = *app()._pags;
/*
const int iPagsASheetItems = ASpags.items();
// Metto la 'X' per quelli gia' collegati (se e' acceso il bit[NUMPAG]) // Metto la 'X' per quelli gia' collegati (se e' acceso il bit[NUMPAG])
for (int j = 0; j < ASpags.items(); j++) for (int j = 0; j < iPagsASheetItems; j++)
ASpags.check(j, selected[j]); ASpags.check(j, selected[j]);*/
// seleziona e aggiungi alle gia' selezionate // seleziona e aggiungi alle gia' selezionate
if (ASpags.run() == K_ENTER) if (ASpags.run() == K_ENTER)
@ -547,8 +556,18 @@ void TSchedaPercipienti::work_tipoluogo(TMask_field& f)
const int row = ss.selected(); const int row = ss.selected();
m.hide (-2); // nasconde tutto m.hide (-2); // nasconde tutto
ss.enable_cell(row,4); // ss.enable_cell(row,4);
if (tipo == 'B')
{
m.show (-6); // ABI e CAB
m.enable(SM_PROGRBANCA); // abilita progressivo vers.banca
ss.enable_cell(row,6);
}
else
{
m.disable(SM_PROGRBANCA); m.disable(SM_PROGRBANCA);
ss.disable_cell(row,6);
if (tipo == 'D') if (tipo == 'D')
{ {
@ -558,22 +577,19 @@ void TSchedaPercipienti::work_tipoluogo(TMask_field& f)
ss.disable_cell(row,4); ss.disable_cell(row,4);
} }
else else
m.show(-4); // serie e numero
}
else
if (tipo == 'B')
{ {
m.show (-6); // ABI e CAB m.show(-4); // serie e numero
m.enable(SM_PROGRBANCA); // abilita progressivo vers.banca ss.enable_cell(row,4);
ss.enable_cell(row,6);
} }
else }
// else
if (tipo == 'C') if (tipo == 'C')
{ {
m.show (-5); // SOLO numero versamento m.show (-5); // SOLO numero versamento
ss.disable_cell(row,4); ss.disable_cell(row,4);
} }
} }
}
bool TSchedaPercipienti::luo_hndl(TMask_field& f, KEY k) bool TSchedaPercipienti::luo_hndl(TMask_field& f, KEY k)
{ {
@ -582,6 +598,7 @@ bool TSchedaPercipienti::luo_hndl(TMask_field& f, KEY k)
if (k == K_ENTER) if (k == K_ENTER)
{ {
work_tipoluogo(f);
TMask& m = f.mask(); TMask& m = f.mask();
char tipo = m.get(F_TIPOVERS)[0]; char tipo = m.get(F_TIPOVERS)[0];
char luogo = m.get(F_LUOVERS)[0]; char luogo = m.get(F_LUOVERS)[0];

View File

@ -21,16 +21,14 @@
#include <urldefid.h> #include <urldefid.h>
#include <mailbox.h> #include <mailbox.h>
#include <execp.h> #include <execp.h>
#include "771.h" #include "771.h"
#include "771100.h" #include "771100.h"
#include "../ba/ba4200.h" #include "../ba/ba4200.h"
#include "../ba/ba4300.h" // per il f_coddittah
#include <comuni.h> #include <comuni.h>
#include <anagr.h> #include <anagr.h>
#include <nditte.h> #include <nditte.h>
#include "77lib.h" #include "77lib.h"
#include "../ba/ba4500.h" #include "../ba/ba4500.h"
class TDati_anagrafici : public TApplication class TDati_anagrafici : public TApplication
@ -44,9 +42,12 @@ class TDati_anagrafici : public TApplication
static bool fisica_handler(TMask_field&, KEY); static bool fisica_handler(TMask_field&, KEY);
static bool giuridica_handler(TMask_field&, KEY); static bool giuridica_handler(TMask_field&, KEY);
static bool anagrafica_handler(TMask_field&, KEY); static bool anagrafica_handler(TMask_field&, KEY);
// bottone ditta in DatiCAAF
static bool DCditta_handler(TMask_field&, KEY);
TMask* _msk; TMask* _msk;
TRelation* _rel; TRelation* _rel;
char _ana; char _ana;
long _codditta;
bool Dichiarante() const { return _ana == 'A'; } bool Dichiarante() const { return _ana == 'A'; }
bool Rappresentante() const { return _ana == 'C'; } bool Rappresentante() const { return _ana == 'C'; }
bool ScrittureContabili() const { return _ana == 'D'; } bool ScrittureContabili() const { return _ana == 'D'; }
@ -96,7 +97,7 @@ bool TDati_anagrafici::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);
@ -137,6 +138,30 @@ bool TDati_anagrafici::attivita_handler(TMask_field& m, KEY k)
return TRUE; return TRUE;
} }
bool TDati_anagrafici::DCditta_handler(TMask_field& f, KEY k)
{
if (k != K_SPACE)
return TRUE;
else
{
TMask& m = f.mask();
app().registra();
m.stop_run(K_ESC);
const long lDittaCaaf = m.get_long(F_DITTACAAF);
TToken_string body(16);
body.add("1"); // usa la chiave 1
body.add(lDittaCaaf); // ditta per il campo codice ditta
body.add(lDittaCaaf); // ditta per il secondo campo codice ditta
TString16 cmd("ba4 -2");
TMessage msg(cmd2name(cmd), MSG_LN, (const char*) body);
msg.send();
TExternal_app a(cmd);
a.run();
m.set_focus();
}
return TRUE;
}
bool TDati_anagrafici::fisica_handler(TMask_field& m, KEY k) bool TDati_anagrafici::fisica_handler(TMask_field& m, KEY k)
{ {
if (k != K_SPACE) if (k != K_SPACE)
@ -392,9 +417,7 @@ bool TDati_anagrafici::niscraa(TMask_field& f, KEY k)
f.mask().set(F_NISCRAA, niscraa); f.mask().set(F_NISCRAA, niscraa);
if (dittacaaf != 0) if (dittacaaf != 0)
f.mask().set(F_DITTACAAF, dittacaaf); f.mask().set(F_DITTACAAF, dittacaaf);
} }
return TRUE; return TRUE;
} }
@ -411,7 +434,6 @@ bool TDati_anagrafici::ditta_caaf(TMask_field& f, KEY k)
if (caaf != 0 && ditta == 0) if (caaf != 0 && ditta == 0)
return f.warning_box("Se indicato il codice del CAAF deve essere indicata anche la ditta a cui e' collegato"); return f.warning_box("Se indicato il codice del CAAF deve essere indicata anche la ditta a cui e' collegato");
} }
return TRUE; return TRUE;
} }
@ -422,9 +444,11 @@ bool TDati_anagrafici::create()
_rel->add(LF_BASE, "CODDITTA=CODDITTA"); _rel->add(LF_BASE, "CODDITTA=CODDITTA");
_rel->add(LF_BASEBIS, "CODDITTA=CODDITTA"); _rel->add(LF_BASEBIS, "CODDITTA=CODDITTA");
_codditta = get_firm_770();
if (Dichiarante()) if (Dichiarante())
{ {
char tipo_pers = tipo_persona(get_firm_770()); char tipo_pers = tipo_persona(_codditta);
if (tipo_pers == ' ' || tipo_pers == '\0') if (tipo_pers == ' ' || tipo_pers == '\0')
{ {
message_box("Il titolare della ditta non e' stato compilato correttamente."); message_box("Il titolare della ditta non e' stato compilato correttamente.");
@ -464,6 +488,8 @@ bool TDati_anagrafici::create()
_msk->set_handler(F_ANAGR, niscraa); _msk->set_handler(F_ANAGR, niscraa);
_msk->set_handler(F_GIURIDICA, giuridica_handler); _msk->set_handler(F_GIURIDICA, giuridica_handler);
_msk->set_handler(F_DITTACAAF, ditta_caaf); _msk->set_handler(F_DITTACAAF, ditta_caaf);
// bottone ditte
_msk->set_handler(DCF_DITTA, DCditta_handler);
_msk->set_mode(NO_MODE); _msk->set_mode(NO_MODE);
} }
@ -481,7 +507,7 @@ bool TDati_anagrafici::create()
_msk->set_handler(F_ANAGRAFICA, anagrafica_handler); _msk->set_handler(F_ANAGRAFICA, anagrafica_handler);
} }
TString16 codditta; codditta << get_firm_770(); TString16 codditta; codditta << _codditta;
if (codditta != "0") if (codditta != "0")
_msk->set(F_CODDITTA,codditta); _msk->set(F_CODDITTA,codditta);
@ -504,7 +530,7 @@ bool TDati_anagrafici::main_loop()
do do
{ {
_rel->lfile().put("CODDITTA", get_firm_770()); _rel->lfile().put("CODDITTA", _codditta);
_rel->read(); _rel->read();
_msk->autoload(_rel); _msk->autoload(_rel);
tasto = _msk->run(); tasto = _msk->run();

View File

@ -115,4 +115,6 @@
#define F_SOC_DATAINPI 413 #define F_SOC_DATAINPI 413
#define F_SOC_DATAFINPI 414 #define F_SOC_DATAFINPI 414
#define DCF_DITTA 415
#endif #endif

View File

@ -4,24 +4,29 @@ TOOLBAR "" 0 20 0 2
BUTTON F_GIURIDICA 10 2 BUTTON F_GIURIDICA 10 2
BEGIN BEGIN
PROMPT -14 -1 "~Giuridiche" PROMPT -15 -1 "~Giuridiche"
END
BUTTON DCF_DITTA 10 2
BEGIN
PROMPT -25 -1 "~Ditte"
END END
BUTTON DLG_SAVEREC 10 2 BUTTON DLG_SAVEREC 10 2
BEGIN BEGIN
PROMPT -24 -1 "~Registra" PROMPT -35 -1 "~Registra"
MESSAGE EXIT,K_SAVE MESSAGE EXIT,K_SAVE
END END
BUTTON DLG_CANCEL 10 2 BUTTON DLG_CANCEL 10 2
BEGIN BEGIN
PROMPT -34 -1 "" PROMPT -45 -1 ""
MESSAGE EXIT,K_ESC MESSAGE EXIT,K_ESC
END END
BUTTON DLG_QUIT 10 2 BUTTON DLG_QUIT 10 2
BEGIN BEGIN
PROMPT -44 -1 "" PROMPT -55 -1 ""
MESSAGE EXIT,K_QUIT MESSAGE EXIT,K_QUIT
END END

View File

@ -192,8 +192,9 @@ BEGIN
DISPLAY "Cognome@24" COGNOME DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME DISPLAY "Nome@20" NOME
OUTPUT ADF_CODDIPDEC CODDIP OUTPUT ADF_CODDIPDEC CODDIP
WARNING "Codice dipendente deceduto non valido"
VALIDATE NOT_EMPTY_CHECK_FIELD VALIDATE NOT_EMPTY_CHECK_FIELD
// CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
LISTBOX ADF_ASSFIS 1 40 LISTBOX ADF_ASSFIS 1 40

View File

@ -33,8 +33,9 @@ bool QA_cerca_codA(const long codditta, const long coddip, TString& quadro)
qq.put(QUA_CODDITTA, codditta); qq.put(QUA_CODDITTA, codditta);
qq.put(QUA_CODIP, coddip); qq.put(QUA_CODIP, coddip);
TRectype dep(qq.curr()); TRectype dep(qq.curr());
qq.read();
for (qq.read(); !qq.eof(); qq.next()) TRecnotype lPos = qq.recno();
for ( ;!qq.eof(); qq.next())
{ {
if (qq.curr() > dep) break; if (qq.curr() > dep) break;
c58 = qq.get(QUA_RETCON); c58 = qq.get(QUA_RETCON);
@ -44,6 +45,7 @@ bool QA_cerca_codA(const long codditta, const long coddip, TString& quadro)
break; break;
} }
} }
qq.readat(lPos);
return Result; return Result;
} }
@ -78,7 +80,7 @@ class TQuadroA : public TRelation_application
static bool QA_tot_detraz_hnd (TMask_field& f, KEY key); static bool QA_tot_detraz_hnd (TMask_field& f, KEY key);
static bool QA_cfdlprec_hnd (TMask_field& f, KEY key); static bool QA_cfdlprec_hnd (TMask_field& f, KEY key);
static bool QA_chech_ritdatlav (TMask_field& f, KEY key); static bool QA_chech_ritdatlav (TMask_field& f, KEY key);
static bool QA_check_ritdovute (TMask_field& f, KEY key); static bool QA_calcola42 (TMask_field& f, KEY k);
static bool QA_check_2527 (TMask_field& f, KEY key); static bool QA_check_2527 (TMask_field& f, KEY key);
static bool QA_A2_check_58 (TMask_field& f, KEY key); static bool QA_A2_check_58 (TMask_field& f, KEY key);
static bool QA_calcolo30 (TMask_field& f, KEY key); static bool QA_calcolo30 (TMask_field& f, KEY key);
@ -244,8 +246,10 @@ TMask* TQuadroA::load_mask(int n)
m->set_handler(F_DETO, QA_tot_detraz_hnd); m->set_handler(F_DETO, QA_tot_detraz_hnd);
// Controlla che 40 sia <= 30 // Controlla che 40 sia <= 30
m->set_handler(F_AMRIODL38, QA_chech_ritdatlav); m->set_handler(F_AMRIODL38, QA_chech_ritdatlav);
// Controlla che 42 = 39 + 40 - 41 // Calcola 42 = 39 + 40 - 41
m->set_handler(F_AMMRITDOV, QA_check_ritdovute); m->set_handler(F_AMRIOT37, QA_calcola42);
m->set_handler(F_AMRIODL38, QA_calcola42);
m->set_handler(F_ECCRITRIMB, QA_calcola42);
// Calcolo: 30 = 23+27+28+29 // Calcolo: 30 = 23+27+28+29
m->set_handler(F_COMPNETTI, QA_calcolo30); m->set_handler(F_COMPNETTI, QA_calcolo30);
m->set_handler(F_TOTIMP26, QA_calcolo30); m->set_handler(F_TOTIMP26, QA_calcolo30);
@ -267,7 +271,6 @@ TMask* TQuadroA::load_mask(int n)
bool TQuadroA::is_societa_trasformata(TMask& m) bool TQuadroA::is_societa_trasformata(TMask& m)
{ {
TLocalisamfile soc (LF_SOCTRASF); TLocalisamfile soc (LF_SOCTRASF);
soc.setkey(1); soc.setkey(1);
soc.zero(); soc.zero();
soc.put(SOC_CODDITTA, m.get_long(QAF_CODDITTA)); soc.put(SOC_CODDITTA, m.get_long(QAF_CODDITTA));
@ -334,14 +337,6 @@ bool TQuadroA::codanagr_handler(TMask_field& f, KEY k)
{ {
if (!f.mask().is_running()) return TRUE; if (!f.mask().is_running()) return TRUE;
/* if (k == K_ENTER)
{
const long coddip = atol(f.get());
const long codditta = get_firm_770();
if (!esiste_dipendente(codditta, coddip))
return f.warning_box("Dipendente inesistente");
}*/
// if (k == K_TAB && f.focusdirty()) // if (k == K_TAB && f.focusdirty())
if (k == K_TAB) if (k == K_TAB)
{ {
@ -404,7 +399,7 @@ bool TQuadroA::nprog_handler(TMask_field& f, KEY key)
else else
{ {
app()._codip = coddip; app()._codip = coddip;
app().AA3SettaCognomeNome(f.mask()); // app().AA3SettaCognomeNome(f.mask());
f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure
// inserimento (se trova che non esiste) // inserimento (se trova che non esiste)
} }
@ -453,12 +448,13 @@ bool TQuadroA::QA3_codip_handler(TMask_field& f, KEY key)
// 26.6.96 azzera soltanto // 26.6.96 azzera soltanto
bool TQuadroA::QA_cfdlprec_hnd(TMask_field& f, KEY k) bool TQuadroA::QA_cfdlprec_hnd(TMask_field& f, KEY k)
{ {
/*
if (k == K_TAB) if (k == K_TAB)
{ {
TString tmp(f.get()); TString tmp(f.get());
if (tmp.empty()) if (tmp.empty())
f.mask().set(F_CAUSA, 0L); f.mask().set(F_CAUSA, 0L);
} } */
return TRUE; return TRUE;
} }
@ -469,26 +465,25 @@ bool TQuadroA::QA_chech_ritdatlav(TMask_field& f, KEY k)
{ {
real RitDatLavoro(f.get()); // c40 real RitDatLavoro(f.get()); // c40
real TotImp(f.mask().get_real(F_TOTIMP29)); // c30 real TotImp(f.mask().get_real(F_TOTIMP29)); // c30
if (RitDatLavoro > TotImp) if (RitDatLavoro > TotImp)
return f.warning_box("Le ritenute del datore di lavoro non possono superare il totale imponibile"); return f.warning_box("Le ritenute del datore di lavoro non possono superare il totale imponibile");
} }
return TRUE; return TRUE;
} }
// Controlla che 42 = 39 + 40 - 41 // Calcola che 42 = 39 + 40 - 41. Se il risultato e' negativo scrive 0
bool TQuadroA::QA_check_ritdovute(TMask_field& f, KEY k) bool TQuadroA::QA_calcola42(TMask_field& f, KEY k)
{ {
if (k == K_ENTER) if (k==K_TAB)
{ {
real ritterzi = f.mask().get_real(F_AMRIOT37); TMask& m = f.mask();
real ritdatlav = f.mask().get_real(F_AMRIODL38); real c39 = m.get_real(F_AMRIOT37);
real eccrit = f.mask().get_real(F_ECCRITRIMB); real c40 = m.get_real(F_AMRIODL38);
real c42(f.get()); real c41 = m.get_real(F_ECCRITRIMB);
real ritdovute = ritterzi + ritdatlav - eccrit; real c42 = c39 + c40 - c41;
if (c42 < ZERO) c42 = ZERO;
if (c42 != ritdovute) TString c42s(c42.string());
f.warning_box("Correggere l'importo delle ritenute dovute"); m.set(F_AMMRITDOV, c42s);
} }
return TRUE; return TRUE;
} }
@ -510,13 +505,14 @@ bool TQuadroA::QA_check_2527 (TMask_field& f, KEY k)
// Funziona sia col quadro A che con A2 // Funziona sia col quadro A che con A2
bool TQuadroA::QA_A2_check_58(TMask_field& f, KEY k) bool TQuadroA::QA_A2_check_58(TMask_field& f, KEY k)
{ {
if (k == K_TAB || k == K_ENTER) // if (k == K_TAB || k == K_ENTER)
if (f.to_check(k,TRUE))
{ {
TMask& m = f.mask(); TMask& m = f.mask();
TString16 cod(f.get()); TString16 cod(f.get());
cod.upper(); cod.upper();
const long codditta = f.mask().get_long(QAF_CODDITTA); const long codditta = m.get_long(QAF_CODDITTA);
const long coddip = f.mask().get_long(F_CODIP); const long coddip = m.get_long(F_CODIP);
if (cod == "B") if (cod == "B")
{ {
if (!QA_cerca_codA(codditta, coddip, app()._quadro)) if (!QA_cerca_codA(codditta, coddip, app()._quadro))
@ -526,23 +522,26 @@ bool TQuadroA::QA_A2_check_58(TMask_field& f, KEY k)
else else
{ {
// Nasconde prompt 770 mostra prompt 730 // Nasconde prompt 770 mostra prompt 730
m.reset(-G_ALL);
m.disable(-G_ALL); m.disable(-G_ALL);
// reset anche dei campi calcolati disabilitati nel quadro A
if (app().QuadroA()) m.reset(-G_2342);
m.hide(-G_770); m.hide(-G_770);
// m.reset(-G_ALL);
m.show(-G_730); m.show(-G_730);
} }
} }
// Nasconde prompt 730 mostra prompt 770 // Nasconde prompt 730 mostra prompt 770
else else
{ {
m.hide(-G_730);
m.show(-G_770); m.show(-G_770);
m.hide(-G_730);
m.enable(-G_ALL); m.enable(-G_ALL);
} }
} }
return TRUE; return TRUE;
} }
// calcola c23 = 20 + 21 -22 Se minore di 0 scrive 0
bool TQuadroA::QA_comp_netti_hnd (TMask_field& f, KEY k) bool TQuadroA::QA_comp_netti_hnd (TMask_field& f, KEY k)
{ {
if (k == K_TAB) if (k == K_TAB)
@ -551,6 +550,7 @@ bool TQuadroA::QA_comp_netti_hnd (TMask_field& f, KEY k)
real natura = f.mask().get_real(F_NATURA); real natura = f.mask().get_real(F_NATURA);
real cobbdip = f.mask().get_real(F_COBBDIP21); real cobbdip = f.mask().get_real(F_COBBDIP21);
real compnetti = denaro + natura - cobbdip; real compnetti = denaro + natura - cobbdip;
if (compnetti < ZERO) compnetti = ZERO;
f.mask().set(F_COMPNETTI, compnetti); f.mask().set(F_COMPNETTI, compnetti);
f.send_key(K_TAB,F_COMPNETTI); f.send_key(K_TAB,F_COMPNETTI);
} }
@ -566,10 +566,12 @@ bool TQuadroA::QA_tot_impon_hnd (TMask_field& f, KEY k)
real ammlordo = f.mask().get_real(F_AMMLORDO24); real ammlordo = f.mask().get_real(F_AMMLORDO24);
real svnsrit = f.mask().get_real(QAF_SVNSOGRIT); real svnsrit = f.mask().get_real(QAF_SVNSOGRIT);
real tot_corr = f.mask().get_real(F_TOTIMP26); real tot_corr = f.mask().get_real(F_TOTIMP26);
if (tot_corr == ZERO || ForzaRicalcolo) if (tot_corr == ZERO || ForzaRicalcolo)
{ {
real totimp29 = ammlordo - svnsrit; real totimp29 = ammlordo - svnsrit;
// c27 se < 0 scrivere 0 fax 15.7.96 p.1
if (totimp29 < ZERO)
totimp29 = ZERO;
f.mask().set(F_TOTIMP26, totimp29); f.mask().set(F_TOTIMP26, totimp29);
} }
} }
@ -609,6 +611,7 @@ bool TQuadroA::QA_calcolo30(TMask_field& f, KEY k)
real c28 = m.get_real(F_AIEREP23); real c28 = m.get_real(F_AIEREP23);
real c29 = m.get_real(F_CCTAMMCONT); real c29 = m.get_real(F_CCTAMMCONT);
c30 = c23 + c27 + c28 + c29; c30 = c23 + c27 + c28 + c29;
if (c30 < ZERO) c30 = ZERO;
m.set(F_TOTIMP29, c30); m.set(F_TOTIMP29, c30);
} }
return TRUE; return TRUE;
@ -657,7 +660,6 @@ void TQuadroA::registra_record2_A3(const TMask& m)
quaa3.put(QA3_REDCOR16, rd1); quaa3.put(QA3_REDCOR16, rd1);
quaa3.put(QA3_NGINC17, ng2); quaa3.put(QA3_NGINC17, ng2);
quaa3.put(QA3_REDCOR18, rd2); quaa3.put(QA3_REDCOR18, rd2);
quaa3.rewrite(); quaa3.rewrite();
} }
else else
@ -670,7 +672,6 @@ void TQuadroA::registra_record2_A3(const TMask& m)
quaa3.put(QA3_REDCOR16, rd1); quaa3.put(QA3_REDCOR16, rd1);
quaa3.put(QA3_NGINC17, ng2); quaa3.put(QA3_NGINC17, ng2);
quaa3.put(QA3_REDCOR18, rd2); quaa3.put(QA3_REDCOR18, rd2);
quaa3.write(); quaa3.write();
} }
} }
@ -874,7 +875,6 @@ void TQuadroA::carica_record2_A3(TMask& m)
void TQuadroA::init_query_mode(TMask& m) void TQuadroA::init_query_mode(TMask& m)
{ {
m.set(QAF_ANNODIC, _anno_dic); m.set(QAF_ANNODIC, _anno_dic);
if (QuadroA3()) if (QuadroA3())
{ {
_soc_trasf = is_societa_trasformata(m); _soc_trasf = is_societa_trasformata(m);
@ -901,6 +901,8 @@ void TQuadroA::init_query_insert_mode(TMask& m)
void TQuadroA::init_modify_mode(TMask& m) void TQuadroA::init_modify_mode(TMask& m)
{ {
if (QuadroA1())
m.set(QA1F_ANNORIF, _anno_dic);
if (QuadroA3()) if (QuadroA3())
{ {
_codditta = m.get_long(QAF_CODDITTA); _codditta = m.get_long(QAF_CODDITTA);

View File

@ -179,7 +179,8 @@
#define F_CODANAGDIPQA 420 #define F_CODANAGDIPQA 420
#define G_ALL 6 #define G_ALL 12
#define G_730 7 #define G_730 9
#define G_770 9 #define G_770 7
#define G_2342 6

View File

@ -15,7 +15,7 @@ BEGIN
FLAGS "H" FLAGS "H"
FIELD LF_QUAA->CODDITTA FIELD LF_QUAA->CODDITTA
KEY 1 KEY 1
GROUP 8 GROUP 10
MESSAGE COPY,1@ MESSAGE COPY,1@
END END
@ -32,7 +32,7 @@ BEGIN
OUTPUT QAF_NOME NOME OUTPUT QAF_NOME NOME
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "DG" FLAGS "DG"
GROUP 8 GROUP 10
MESSAGE COPY,2@ MESSAGE COPY,2@
KEY 1 KEY 1
END END
@ -41,7 +41,7 @@ STRING QAF_COGNOME 24
BEGIN BEGIN
PROMPT 25 1 "" PROMPT 25 1 ""
FLAGS "DG" FLAGS "DG"
GROUP 8 GROUP 10
MESSAGE COPY,3@ MESSAGE COPY,3@
END END
@ -49,7 +49,7 @@ STRING QAF_NOME 20
BEGIN BEGIN
PROMPT 49 1 "" PROMPT 49 1 ""
FLAGS "DG" FLAGS "DG"
GROUP 8 GROUP 10
MESSAGE COPY,4@ MESSAGE COPY,4@
END END
@ -59,7 +59,7 @@ BEGIN
FIELD LF_QUAA->NPROG FIELD LF_QUAA->NPROG
FLAGS "DG" FLAGS "DG"
KEY 1 KEY 1
GROUP 8 GROUP 10
MESSAGE COPY,5@ MESSAGE COPY,5@
END END
@ -70,7 +70,7 @@ END
LISTBOX QAF_AREAATT 1 22 LISTBOX QAF_AREAATT 1 22
BEGIN BEGIN
PROMPT 2 4 "13 area attività " PROMPT 2 4 "13 Area attività "
ITEM " |" ITEM " |"
ITEM "A|Area amministrativa" ITEM "A|Area amministrativa"
ITEM "B|Area vendita" ITEM "B|Area vendita"
@ -82,7 +82,7 @@ END
STRING QAF_TIPOATT 1 STRING QAF_TIPOATT 1
BEGIN BEGIN
PROMPT 42 4 "14 tipo " PROMPT 42 4 "14 Tipo "
SHEET "Codice|Descrizione@70" SHEET "Codice|Descrizione@70"
INPUT QAF_TIPOATT INPUT QAF_TIPOATT
ITEM " |" ITEM " |"
@ -91,26 +91,27 @@ BEGIN
ITEM "C|Formazione lavoro" ITEM "C|Formazione lavoro"
OUTPUT QAF_TIPOATT OUTPUT QAF_TIPOATT
FIELD LF_QUAA->TIPO FIELD LF_QUAA->TIPO
FLAGS "U"
GROUP G_ALL GROUP G_ALL
END END
NUMBER F_NUMGIORNI 3 NUMBER F_NUMGIORNI 3
BEGIN BEGIN
PROMPT 55 4 "15 numero giorni " PROMPT 55 4 "15 Numero giorni "
FIELD LF_QUAA->NUMGIO FIELD LF_QUAA->NUMGIO
GROUP G_ALL GROUP G_ALL
END END
DATE F_DATAFR DATE F_DATAFR
BEGIN BEGIN
PROMPT 2 5 "16 data fine rapporto " PROMPT 2 5 "16 Data fine rapporto "
FIELD LF_QUAA->DATAFR FIELD LF_QUAA->DATAFR
GROUP G_ALL GROUP G_ALL
END END
NUMBER QAF_GIODET 3 NUMBER QAF_GIODET 3
BEGIN BEGIN
PROMPT 40 5 "17 num.gio.det.lav.dip " PROMPT 40 5 "17 Num.gio.det.lav.dip "
FIELD LF_QUAA->NUMGIODET FIELD LF_QUAA->NUMGIODET
NUM_EXPR {(#THIS>=0)&&(#THIS<=366)} NUM_EXPR {(#THIS>=0)&&(#THIS<=366)}
WARNING "I giorni detrazione per lav.dip. devono essere compresi tra 0 e 366" WARNING "I giorni detrazione per lav.dip. devono essere compresi tra 0 e 366"
@ -119,7 +120,7 @@ END
STRING F_CODFISDL 16 STRING F_CODFISDL 16
BEGIN BEGIN
PROMPT 2 6 "18 cod.fis.prec.dat.lav. " PROMPT 2 6 "18 Cod.fis.prec.dat.lav. "
FIELD LF_QUAA->CFDLPREC FIELD LF_QUAA->CFDLPREC
FLAGS "U" FLAGS "U"
VALIDATE CF_FUNC F_CODFISDL VALIDATE CF_FUNC F_CODFISDL
@ -128,7 +129,7 @@ END
NUMBER F_CAUSA 1 NUMBER F_CAUSA 1
BEGIN BEGIN
PROMPT 60 6 "19 causa " PROMPT 60 6 "19 Causa "
FIELD LF_QUAA->CAUSA FIELD LF_QUAA->CAUSA
SHEET "Codice|Descrizione@70" SHEET "Codice|Descrizione@70"
INPUT F_CAUSA INPUT F_CAUSA
@ -151,7 +152,7 @@ END
NUMBER F_DENARO 15 NUMBER F_DENARO 15
BEGIN BEGIN
PROMPT 2 9 "20 in denaro " PROMPT 2 9 "20 In denaro "
FIELD LF_QUAA->DENARO FIELD LF_QUAA->DENARO
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -159,7 +160,7 @@ END
NUMBER F_NATURA 15 NUMBER F_NATURA 15
BEGIN BEGIN
PROMPT 45 9 "21 in natura " PROMPT 45 9 "21 In natura "
FIELD LF_QUAA->NATURA FIELD LF_QUAA->NATURA
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -167,7 +168,7 @@ END
NUMBER F_COBBDIP21 15 NUMBER F_COBBDIP21 15
BEGIN BEGIN
PROMPT 2 11 "22 contr.obb.car. dip. " PROMPT 2 11 "22 Contr.obb.car. dip. "
HELP "Contributi obbligatori a carico del dipendente" HELP "Contributi obbligatori a carico del dipendente"
FIELD LF_QUAA->COBBDIP FIELD LF_QUAA->COBBDIP
PICTURE "." PICTURE "."
@ -176,10 +177,11 @@ END
NUMBER F_COMPNETTI 15 NUMBER F_COMPNETTI 15
BEGIN BEGIN
PROMPT 45 11 "23 compensi netti" PROMPT 45 11 "23 Compensi netti"
FIELD LF_QUAA->COMPNETTI FIELD LF_QUAA->COMPNETTI
PICTURE "." PICTURE "."
GROUP G_ALL FLAGS "D"
GROUP G_2342
END END
GROUPBOX DLG_NULL 78 4 GROUPBOX DLG_NULL 78 4
@ -189,7 +191,7 @@ END
NUMBER F_AMMLORDO24 15 NUMBER F_AMMLORDO24 15
BEGIN BEGIN
PROMPT 2 14 "24 ammontare lordo " PROMPT 2 14 "24 Ammontare lordo "
FIELD LF_QUAA->AMMLORDO FIELD LF_QUAA->AMMLORDO
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -197,7 +199,7 @@ END
NUMBER F_IACOBBCD25 15 NUMBER F_IACOBBCD25 15
BEGIN BEGIN
PROMPT 39 14 "25 contr.obb.car. dip. " PROMPT 39 14 "25 Contr.obb.car. dip. "
FIELD LF_QUAA->IACOBBCD FIELD LF_QUAA->IACOBBCD
PICTURE "." PICTURE "."
HELP "Contributi obbligatori a carico del dipendente" HELP "Contributi obbligatori a carico del dipendente"
@ -206,7 +208,7 @@ END
NUMBER QAF_SVNSOGRIT 15 NUMBER QAF_SVNSOGRIT 15
BEGIN BEGIN
PROMPT 2 15 "26 som.v.non sog.rit." PROMPT 2 15 "26 Som.v.non sog.rit."
FIELD LF_QUAA->NORIT FIELD LF_QUAA->NORIT
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -214,7 +216,7 @@ END
NUMBER F_TOTIMP26 15 NUMBER F_TOTIMP26 15
BEGIN BEGIN
PROMPT 39 15 "27 totale imponibile " PROMPT 39 15 "27 Totale imponibile "
FIELD LF_QUAA->TOTIMP FIELD LF_QUAA->TOTIMP
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -229,12 +231,6 @@ BEGIN
PROMPT 1 1 "@bDipendente" PROMPT 1 1 "@bDipendente"
END END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "H"
GROUP 1
END
NUMBER F_CODIP 6 NUMBER F_CODIP 6
BEGIN BEGIN
PROMPT 17 1 "" PROMPT 17 1 ""
@ -265,7 +261,7 @@ END
NUMBER F_AIEREP23 15 NUMBER F_AIEREP23 15
BEGIN BEGIN
PROMPT 2 3 "28 assegni indennita' erogati da enti previdenziali " PROMPT 2 3 "28 Assegni indennita' erogati da enti previdenziali "
FIELD LF_QUAA->AIENTIPREV FIELD LF_QUAA->AIENTIPREV
PICTURE "." PICTURE "."
HELP "Assegni e indennita' erogati da enti previdenziali" HELP "Assegni e indennita' erogati da enti previdenziali"
@ -274,7 +270,7 @@ END
NUMBER F_CCTAMMCONT 15 NUMBER F_CCTAMMCONT 15
BEGIN BEGIN
PROMPT 2 4 "29 ammontare compensi corrisposti da terzi " PROMPT 2 4 "29 Ammontare compensi corrisposti da terzi "
FIELD LF_QUAA->CCTAMMCONT FIELD LF_QUAA->CCTAMMCONT
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -282,7 +278,7 @@ END
NUMBER F_TOTIMP29 15 NUMBER F_TOTIMP29 15
BEGIN BEGIN
PROMPT 2 5 "30 totale imponibile " PROMPT 2 5 "30 Totale imponibile "
FIELD LF_QUAA->TOTIMP2 FIELD LF_QUAA->TOTIMP2
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -290,7 +286,7 @@ END
NUMBER F_ICTOTIMP30 15 NUMBER F_ICTOTIMP30 15
BEGIN BEGIN
PROMPT 2 6 "31 imposta corrispondente totale imponibile " PROMPT 2 6 "31 Imposta corrispondente totale imponibile "
FIELD LF_QUAA->ICTOTIMP FIELD LF_QUAA->ICTOTIMP
PICTURE "." PICTURE "."
HELP "Imposta corrispondente al totale imponibile" HELP "Imposta corrispondente al totale imponibile"
@ -299,7 +295,7 @@ END
NUMBER F_DETCC 15 NUMBER F_DETCC 15
BEGIN BEGIN
PROMPT 2 7 "32 detr.coniuge carico " PROMPT 2 7 "32 Detr.coniuge carico "
FIELD LF_QUAA->DETCC FIELD LF_QUAA->DETCC
PICTURE "." PICTURE "."
HELP "Detrazione per coniuge a carico" HELP "Detrazione per coniuge a carico"
@ -308,7 +304,7 @@ END
NUMBER F_DETFC 15 NUMBER F_DETFC 15
BEGIN BEGIN
PROMPT 41 7 "33 detr.figli carico " PROMPT 41 7 "33 Detr.figli carico "
FIELD LF_QUAA->DETFC FIELD LF_QUAA->DETFC
PICTURE "." PICTURE "."
HELP "Detrazione per figli a carico" HELP "Detrazione per figli a carico"
@ -317,7 +313,7 @@ END
NUMBER F_DETAF 15 NUMBER F_DETAF 15
BEGIN BEGIN
PROMPT 2 8 "34 det.altri fam.carico" PROMPT 2 8 "34 Det.altri fam.carico"
FIELD LF_QUAA->DETAF FIELD LF_QUAA->DETAF
PICTURE "." PICTURE "."
HELP "Detrazione per altri famigliari a carico" HELP "Detrazione per altri famigliari a carico"
@ -326,7 +322,7 @@ END
NUMBER F_DETLD 15 NUMBER F_DETLD 15
BEGIN BEGIN
PROMPT 41 8 "35 detr.lav. dipend. " PROMPT 41 8 "35 Detr.lav. dipend. "
FIELD LF_QUAA->DETLD FIELD LF_QUAA->DETLD
PICTURE "." PICTURE "."
HELP "Detrazione per lavoro dipendente" HELP "Detrazione per lavoro dipendente"
@ -335,7 +331,7 @@ END
NUMBER F_DETO 15 NUMBER F_DETO 15
BEGIN BEGIN
PROMPT 2 9 "36 detr. per oneri " PROMPT 2 9 "36 Detr. per oneri "
FIELD LF_QUAA->DETO FIELD LF_QUAA->DETO
PICTURE "." PICTURE "."
HELP "Detrazione per oneri" HELP "Detrazione per oneri"
@ -344,7 +340,7 @@ END
NUMBER F_TOTDET36 15 NUMBER F_TOTDET36 15
BEGIN BEGIN
PROMPT 41 9 "37 totale detrazione " PROMPT 41 9 "37 Totale detrazione "
FIELD LF_QUAA->TOTDET FIELD LF_QUAA->TOTDET
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -352,7 +348,7 @@ END
NUMBER QAF_INCDETFC 15 NUMBER QAF_INCDETFC 15
BEGIN BEGIN
PROMPT 2 10 "38 inc.detr.figli a ca." PROMPT 2 10 "38 Inc.detr.figli a ca."
FIELD LF_QUAA->INCDETFC FIELD LF_QUAA->INCDETFC
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -360,7 +356,7 @@ END
NUMBER F_AMRIOT37 15 NUMBER F_AMRIOT37 15
BEGIN BEGIN
PROMPT 2 11 "39 ammontare delle ritenute operate da terzi" PROMPT 2 11 "39 Ammontare delle ritenute operate da terzi"
FIELD LF_QUAA->AMRIOT FIELD LF_QUAA->AMRIOT
PICTURE "." PICTURE "."
HELP "Ammontare delle ritenute operate da terzi" HELP "Ammontare delle ritenute operate da terzi"
@ -369,7 +365,7 @@ END
NUMBER F_AMRIODL38 15 NUMBER F_AMRIODL38 15
BEGIN BEGIN
PROMPT 2 12 "40 ammontare ritenute operate datore lavoro " PROMPT 2 12 "40 Ammontare ritenute operate datore lavoro "
FIELD LF_QUAA->AMRIODL FIELD LF_QUAA->AMRIODL
PICTURE "." PICTURE "."
HELP "Ammontare delle ritenute operate dal datore di lavoro" HELP "Ammontare delle ritenute operate dal datore di lavoro"
@ -378,7 +374,7 @@ END
NUMBER F_ECCRITRIMB 15 NUMBER F_ECCRITRIMB 15
BEGIN BEGIN
PROMPT 2 13 "41 eccedenza delle ritenute da rimborsare " PROMPT 2 13 "41 Eccedenza delle ritenute da rimborsare "
FIELD LF_QUAA->ECCRITRIMB FIELD LF_QUAA->ECCRITRIMB
PICTURE "." PICTURE "."
HELP "Eccedenza delle ritenute da rimborsare" HELP "Eccedenza delle ritenute da rimborsare"
@ -387,16 +383,17 @@ END
NUMBER F_AMMRITDOV 15 NUMBER F_AMMRITDOV 15
BEGIN BEGIN
PROMPT 2 14 "42 ammont.riten. dovute" PROMPT 2 14 "42 Ammont.riten. dovute"
FIELD LF_QUAA->AMMRITDOV FIELD LF_QUAA->AMMRITDOV
PICTURE "." PICTURE "."
HELP "Ammontare delle ritenute dovute" HELP "Ammontare delle ritenute dovute"
GROUP G_ALL FLAGS "D"
GROUP G_2342
END END
NUMBER F_ERSPSAN41 15 NUMBER F_ERSPSAN41 15
BEGIN BEGIN
PROMPT 41 14 "43 er.spese sanitarie" PROMPT 41 14 "43 Er.spese sanitarie"
FIELD LF_QUAA->ERSPSAN FIELD LF_QUAA->ERSPSAN
PICTURE "." PICTURE "."
HELP "Erogazioni per spese sanitarie, anche in forma assicurativa" HELP "Erogazioni per spese sanitarie, anche in forma assicurativa"
@ -405,7 +402,7 @@ END
NUMBER F_PRASSVI42 15 NUMBER F_PRASSVI42 15
BEGIN BEGIN
PROMPT 2 15 "44 premi di assicurazione vita e infortuni " PROMPT 2 15 "44 Premi di assicurazione vita e infortuni "
FIELD LF_QUAA->PRASSVI FIELD LF_QUAA->PRASSVI
PICTURE "." PICTURE "."
HELP "Premi di assicurazione vita e infortuni" HELP "Premi di assicurazione vita e infortuni"
@ -414,7 +411,7 @@ END
NUMBER F_CONPRECO43 15 NUMBER F_CONPRECO43 15
BEGIN BEGIN
PROMPT 2 16 "45 contributi per previdenza complementare " PROMPT 2 16 "45 Contributi per previdenza complementare "
FIELD LF_QUAA->CONPRECO FIELD LF_QUAA->CONPRECO
PICTURE "." PICTURE "."
HELP "Contributi per previdenza complementare" HELP "Contributi per previdenza complementare"
@ -471,7 +468,7 @@ END
NUMBER F_COBBDIP44 15 NUMBER F_COBBDIP44 15
BEGIN BEGIN
PROMPT 2 4 "46 cont.obb.carico dip." PROMPT 2 4 "46 Cont.obb.carico dip."
FIELD LF_QUAA->COBBDIP2 FIELD LF_QUAA->COBBDIP2
PICTURE "." PICTURE "."
HELP "Contributi obbligatori a carico del dipendente" HELP "Contributi obbligatori a carico del dipendente"
@ -480,7 +477,7 @@ END
NUMBER F_AMMIMP45 15 NUMBER F_AMMIMP45 15
BEGIN BEGIN
PROMPT 41 4 "47 ammontare imponib." PROMPT 41 4 "47 Ammontare imponib."
FIELD LF_QUAA->AMMIMP FIELD LF_QUAA->AMMIMP
PICTURE "." PICTURE "."
HELP "Ammontare imponibile" HELP "Ammontare imponibile"
@ -489,7 +486,7 @@ END
NUMBER F_DETIMPOS46 15 NUMBER F_DETIMPOS46 15
BEGIN BEGIN
PROMPT 2 5 "48 detrazioni d'imposta" PROMPT 2 5 "48 Detrazioni d'imposta"
FIELD LF_QUAA->DETIMPOS FIELD LF_QUAA->DETIMPOS
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -497,7 +494,7 @@ END
NUMBER F_RITESEG47 15 NUMBER F_RITESEG47 15
BEGIN BEGIN
PROMPT 41 5 "49 ritenuta eseguita " PROMPT 41 5 "49 Ritenuta eseguita "
FIELD LF_QUAA->RITESEG FIELD LF_QUAA->RITESEG
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -505,7 +502,7 @@ END
NUMBER F_SVNASSRI48 15 NUMBER F_SVNASSRI48 15
BEGIN BEGIN
PROMPT 2 6 "50 altre somme e valori non ass.a ritenuta " PROMPT 2 6 "50 Altre somme e valori non ass.a ritenuta "
FIELD LF_QUAA->SVNASSRI FIELD LF_QUAA->SVNASSRI
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -513,7 +510,7 @@ END
NUMBER F_AIFCSSN49 15 NUMBER F_AIFCSSN49 15
BEGIN BEGIN
PROMPT 2 7 "51 ammontare imponibile ai fini del C.S.S.N." PROMPT 2 7 "51 Ammontare imponibile ai fini del C.S.S.N."
FIELD LF_QUAA->AIFCSSN FIELD LF_QUAA->AIFCSSN
PICTURE "." PICTURE "."
HELP "Ammontare imponibile ai fini del C.S.S.N." HELP "Ammontare imponibile ai fini del C.S.S.N."
@ -544,6 +541,7 @@ BEGIN
ITEM "E|Retribuzione insufficiente" ITEM "E|Retribuzione insufficiente"
ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici" ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici"
OUTPUT F_CONEFF50 OUTPUT F_CONEFF50
FLAGS "U"
GROUP G_ALL GROUP G_ALL
END END
@ -554,7 +552,7 @@ END
NUMBER F_IMPVERS51 15 NUMBER F_IMPVERS51 15
BEGIN BEGIN
PROMPT 2 14 "53 imposta vers. " PROMPT 2 14 "53 Imposta vers. "
FIELD LF_QUAA->IMPVERS FIELD LF_QUAA->IMPVERS
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -562,7 +560,7 @@ END
NUMBER F_ISOPTAS52 15 NUMBER F_ISOPTAS52 15
BEGIN BEGIN
PROMPT 37 14 "54 interessi " PROMPT 37 14 "54 Interessi "
FIELD LF_QUAA->INTERE FIELD LF_QUAA->INTERE
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -575,7 +573,7 @@ END
NUMBER F_CONTRVER53 15 NUMBER F_CONTRVER53 15
BEGIN BEGIN
PROMPT 2 17 "55 contr. versato" PROMPT 2 17 "55 Contr. versato"
FIELD LF_QUAA->CSSN95CV FIELD LF_QUAA->CSSN95CV
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -583,7 +581,7 @@ END
NUMBER F_ISOPTAS54 15 NUMBER F_ISOPTAS54 15
BEGIN BEGIN
PROMPT 37 17 "56 interessi " PROMPT 37 17 "56 Interessi "
FIELD LF_QUAA->INTERE2 FIELD LF_QUAA->INTERE2
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -639,7 +637,7 @@ END
STRING F_CNEFF55 1 STRING F_CNEFF55 1
BEGIN BEGIN
PROMPT 2 4 "57 conguagli n/eff. " PROMPT 2 4 "57 Conguagli n/eff. "
FIELD LF_QUAA->CNEFF FIELD LF_QUAA->CNEFF
SHEET "Codice|Descrizione@85" SHEET "Codice|Descrizione@85"
INPUT F_CNEFF55 INPUT F_CNEFF55
@ -652,12 +650,13 @@ BEGIN
ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici" ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici"
ITEM "G|Rimborso non effettuato o rimborso effettuato parzialmente" ITEM "G|Rimborso non effettuato o rimborso effettuato parzialmente"
OUTPUT F_CNEFF55 OUTPUT F_CNEFF55
FLAGS "U"
GROUP G_ALL GROUP G_ALL
END END
STRING F_RETCON56 1 STRING F_RETCON56 1
BEGIN BEGIN
PROMPT 37 4 "58 rettifica conguaglio " PROMPT 37 4 "58 Rettifica conguaglio "
FIELD LF_QUAA->RETCON FIELD LF_QUAA->RETCON
SHEET "Cod.|Descrizione@200" SHEET "Cod.|Descrizione@200"
INPUT F_RETCON56 INPUT F_RETCON56
@ -665,7 +664,7 @@ BEGIN
ITEM "A|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.96 (I n. d'ordine)" ITEM "A|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.96 (I n. d'ordine)"
ITEM "B|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.96 (II n. d'ordine)" ITEM "B|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.96 (II n. d'ordine)"
ITEM "C|Conguaglio a seguito di rettifica di una precedente comunicazione tardivamente pervenuta al sostituto" ITEM "C|Conguaglio a seguito di rettifica di una precedente comunicazione tardivamente pervenuta al sostituto"
ITEM "D|Conguaglio a seguito di rettifica prec. comunic. tempestivam. perventuta al sostituto ma per la quale non è stato effettuato il conguaglio nel mese di giugno" ITEM "D|Conguaglio a seguito di rett. prec. comunic. tempestivam. pervenuta al sostituto ma per la quale non è stato effettuato il conguaglio nel mese di giugno"
ITEM "E|Conguaglio tardivo per mod.730-4 pervenuto tardivamente" ITEM "E|Conguaglio tardivo per mod.730-4 pervenuto tardivamente"
ITEM "F|Conguaglio tardivo per causa dipendente dal sostituto d'imposta" ITEM "F|Conguaglio tardivo per causa dipendente dal sostituto d'imposta"
OUTPUT F_RETCON56 OUTPUT F_RETCON56
@ -679,7 +678,7 @@ END
NUMBER F_IMPRIMB57 15 NUMBER F_IMPRIMB57 15
BEGIN BEGIN
PROMPT 2 7 "59 impo. rimborsata " PROMPT 2 7 "59 Impo. rimborsata "
FIELD LF_QUAA->IMPRIMB FIELD LF_QUAA->IMPRIMB
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -687,7 +686,7 @@ END
NUMBER F_IMPVER58 15 NUMBER F_IMPVER58 15
BEGIN BEGIN
PROMPT 44 7 "60 imposta versata" PROMPT 44 7 "60 Imposta versata"
FIELD LF_QUAA->IMPVER FIELD LF_QUAA->IMPVER
PICTURE "." PICTURE "."
GROUP G_ALL GROUP G_ALL
@ -695,7 +694,7 @@ END
NUMBER F_INTIRPEF59 15 NUMBER F_INTIRPEF59 15
BEGIN BEGIN
PROMPT 2 8 "61 interessi " PROMPT 2 8 "61 Interessi "
FIELD LF_QUAA->INTIRPEF FIELD LF_QUAA->INTIRPEF
PICTURE "." PICTURE "."
HELP "Interessi IRPEF" HELP "Interessi IRPEF"
@ -709,14 +708,13 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 11 "62 impo. versata " PROMPT 2 11 "62 Impo. versata "
GROUP G_770 GROUP G_770
END END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 11 "62 i.ver/tr.IRPEF" PROMPT 2 11 "62 I.ver/tr.IRPEF"
// FLAGS "H"
GROUP G_730 GROUP G_730
END END
@ -729,15 +727,14 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 44 11 "63 interessi " PROMPT 44 11 "63 Interessi "
GROUP G_770 GROUP G_770
END END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 44 11 "63 i.ri.IRPEF" PROMPT 44 11 "63 I.ri.IRPEF"
GROUP G_730 GROUP G_730
// FLAGS "H"
END END
NUMBER F_INTER61 15 NUMBER F_INTER61 15
@ -749,14 +746,13 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 12 "64 soprattasse saldo IRPEF per 95 e prima rata acconto 96 " PROMPT 2 12 "64 Soprattasse saldo IRPEF per 95 e prima rata acconto 96 "
GROUP G_770 GROUP G_770
END END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 12 "64 prima rata di acconto IRPEF per il 1996 " PROMPT 2 12 "64 Prima rata di acconto IRPEF per il 1996 "
// FLAGS "H"
GROUP G_730 GROUP G_730
END END
@ -782,7 +778,6 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 15 "65 2rata ac.IRPEF96" PROMPT 2 15 "65 2rata ac.IRPEF96"
// FLAGS "H"
GROUP G_730 GROUP G_730
END END
@ -801,9 +796,8 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 44 15 "66 i.v.trat.CSSN " PROMPT 44 15 "66 I.v.trat.CSSN "
GROUP G_730 GROUP G_730
// FLAGS "H"
END END
NUMBER F_CONVER64 15 NUMBER F_CONVER64 15
@ -815,14 +809,13 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 16 "67 interessi " PROMPT 2 16 "67 Interessi "
GROUP G_770 GROUP G_770
END END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 16 "67 imp. rimb. CSSN " PROMPT 2 16 "67 Imp. rimb. CSSN "
// FLAGS "H"
GROUP G_730 GROUP G_730
END END
@ -884,7 +877,7 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 4 "68 contr. versato " PROMPT 2 4 "68 Contr. versato "
GROUP G_770 GROUP G_770
END END
@ -892,7 +885,6 @@ TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 4 "68 1r.acc.CSSN 96 " PROMPT 2 4 "68 1r.acc.CSSN 96 "
GROUP G_730 GROUP G_730
// FLAGS "H"
END END
NUMBER F_CONVER66 15 NUMBER F_CONVER66 15
@ -905,7 +897,7 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 44 4 "69 interessi " PROMPT 44 4 "69 Interessi "
GROUP G_770 GROUP G_770
END END
@ -913,7 +905,6 @@ TEXT DLG_NULL
BEGIN BEGIN
PROMPT 44 4 "69 2r.acc.CSSN 96" PROMPT 44 4 "69 2r.acc.CSSN 96"
GROUP G_730 GROUP G_730
// FLAGS "H"
END END
NUMBER F_INTER67 15 NUMBER F_INTER67 15
@ -937,7 +928,7 @@ BEGIN
PROMPT 2 6 "71 Mod.730/96 non liquidabile " PROMPT 2 6 "71 Mod.730/96 non liquidabile "
FIELD LF_QUAA->M730NLIQ FIELD LF_QUAA->M730NLIQ
FLAGS "Z" FLAGS "Z"
SHEET "Codice|Descrizione@65" SHEET "Codice|Descrizione@200"
INPUT F_SEGDICNL69 INPUT F_SEGDICNL69
ITEM " |Niente" ITEM " |Niente"
ITEM "01|Errata o incompleta compilazione dei dati anagrafici e di residenza del dichiarante" ITEM "01|Errata o incompleta compilazione dei dati anagrafici e di residenza del dichiarante"

View File

@ -65,9 +65,9 @@ BEGIN
FIELD LF_QUAA1->MESERIF FIELD LF_QUAA1->MESERIF
END END
TEXT QA1F_ANNORIF NUMBER QA1F_ANNORIF 4
BEGIN BEGIN
PROMPT 44 3 "1995" PROMPT 44 3 ""
FLAGS "D" FLAGS "D"
FIELD LF_QUAA1->ANNORIF FIELD LF_QUAA1->ANNORIF
END END

View File

@ -103,14 +103,14 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 7 "10 Imposta rimbor. " PROMPT 2 7 "10 Imp.ver/tr.IRPEF"
GROUP G_770 GROUP G_730
END END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 7 "10 i.ver/tr.IRPEF"" PROMPT 2 7 "10 Imposta rimbor. "
GROUP G_730 GROUP G_770
END END
NUMBER F_IIRPEFVER8 15 NUMBER F_IIRPEFVER8 15
@ -120,6 +120,12 @@ BEGIN
PICTURE "." PICTURE "."
END END
TEXT DLG_NULL
BEGIN
PROMPT 41 7 "11 Imp.da rim.IRPEF"
GROUP G_730
END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 41 7 "11 Imposta versata " PROMPT 41 7 "11 Imposta versata "
@ -136,6 +142,13 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 8 "12 Interessi " PROMPT 2 8 "12 Interessi "
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 2 8 "12 1rata ac.IRPEF95"
GROUP G_730
END END
NUMBER F_INTER11 15 NUMBER F_INTER11 15
@ -153,7 +166,13 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 11 "13 Imposta versata " PROMPT 2 11 "13 Imposta versata "
// GROUP 6 GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 2 11 "13 2rata ac.IRPEF95"
GROUP G_730
END END
NUMBER F_PRIRPEF10 15 NUMBER F_PRIRPEF10 15
@ -167,7 +186,13 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 41 11 "14 Interessi " PROMPT 41 11 "14 Interessi "
// GROUP 6 GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 41 11 "14 I.v.trat.CSSN "
GROUP G_730
END END
NUMBER F_INTER11 15 NUMBER F_INTER11 15
@ -181,7 +206,13 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 13 "15 Soprattasse IRPEF saldo 94 e prima rata acc.95 " PROMPT 2 13 "15 Soprattasse IRPEF saldo 94 e prima rata acc.95 "
GROUP 6 GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 2 13 "15 Importo da rimborsare CSSN "
GROUP G_730
END END
NUMBER F_STASSA12 15 NUMBER F_STASSA12 15
@ -191,12 +222,6 @@ BEGIN
PICTURE "." PICTURE "."
END END
TEXT DLG_NULL
BEGIN
PROMPT 2 13 "Imp. rimb. CSSN "
GROUP 7
END
ENDPAGE ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A2" -1 -1 78 21 PAGE "MODULO 770 - Manutenzione Quadro A2" -1 -1 78 21
@ -248,12 +273,13 @@ END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 5 "16 Cont.a rimborso " PROMPT 2 5 "16 Cont.a rimborso "
// GROUP 6 GROUP G_770
END END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 41 5 "17 Cont. versato " PROMPT 2 5 "16 1r.acc.CSSN 95 "
GROUP G_730
END END
NUMBER QA2F_CSSNCRIMB 15 NUMBER QA2F_CSSNCRIMB 15
@ -263,6 +289,18 @@ BEGIN
PICTURE "." PICTURE "."
END END
TEXT DLG_NULL
BEGIN
PROMPT 41 5 "17 Cont. versato "
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 41 5 "17 2r.acc.CSSN 95 "
GROUP G_730
END
NUMBER QA2F_CSSNCVER 15 NUMBER QA2F_CSSNCVER 15
BEGIN BEGIN
// PROMPT 41 5 "Contr. versato " // PROMPT 41 5 "Contr. versato "
@ -288,6 +326,7 @@ BEGIN
PROMPT 2 9 "19 Contrib.versato " PROMPT 2 9 "19 Contrib.versato "
FIELD LF_QUAA2->CONTV19 FIELD LF_QUAA2->CONTV19
PICTURE "." PICTURE "."
GROUP G_ALL
END END
NUMBER QA2F_CSSNAINT 15 NUMBER QA2F_CSSNAINT 15
@ -295,6 +334,7 @@ BEGIN
PROMPT 41 9 "20 Interessi " PROMPT 41 9 "20 Interessi "
FIELD LF_QUAA2->INTE20 FIELD LF_QUAA2->INTE20
PICTURE "." PICTURE "."
GROUP G_ALL
END END
NUMBER QA2F_STCSSN 15 NUMBER QA2F_STCSSN 15
@ -302,6 +342,7 @@ BEGIN
PROMPT 2 11 "21 Soprattasse su C.S.S.N. saldo 94 e prima rata acc.95 " PROMPT 2 11 "21 Soprattasse su C.S.S.N. saldo 94 e prima rata acc.95 "
FIELD LF_QUAA2->SOPRAT21 FIELD LF_QUAA2->SOPRAT21
PICTURE "." PICTURE "."
GROUP G_ALL
END END
STRING QA2F_730NLIQ 2 STRING QA2F_730NLIQ 2
@ -326,6 +367,7 @@ BEGIN
FIELD LF_QUAA2->M730NLIQ FIELD LF_QUAA2->M730NLIQ
FLAGS "Z" FLAGS "Z"
OUTPUT QA2F_730NLIQ OUTPUT QA2F_730NLIQ
GROUP G_ALL
END END
GROUPBOX DLG_NULL 78 4 GROUPBOX DLG_NULL 78 4
@ -348,6 +390,7 @@ BEGIN
OUTPUT F_DENCAAF S0 OUTPUT F_DENCAAF S0
OUTPUT F_NISCRA I1 OUTPUT F_NISCRA I1
OUTPUT F_CODFISCAAF S1 OUTPUT F_CODFISCAAF S1
GROUP G_ALL
END END
STRING F_DENCAAF 50 STRING F_DENCAAF 50

View File

@ -117,7 +117,7 @@ BEGIN
KEY 1 KEY 1
END END
NUMBER F_CODIP_2 5 NUMBER F_CODIP_2 6
BEGIN BEGIN
PROMPT 17 1 "" PROMPT 17 1 ""
MESSAGE COPY,F_CODIP2 MESSAGE COPY,F_CODIP2

View File

@ -424,6 +424,7 @@ bool TQuadroC_E2::generazione()
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) && somme==ZERO)
continue; continue;
@ -545,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, bInps = FALSE; bool esiste_record = FALSE, acc_imp = FALSE;
struct righe_pag* rp; struct righe_pag* rp;
keyp = key = ""; keyp = key = "";
@ -562,8 +563,8 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
codcaus = atoi(rp->codcau); codcaus = atoi(rp->codcau);
perc = rp->perc; perc = rp->perc;
acc_imp = rp->acim; acc_imp = rp->acim;
bInps = rp->bInps; // se la riga aveva il contributo inps nella cau. // non frega un tubo bInps = rp->bInps; // se la riga aveva il contributo inps nella caus.
rQCInps = bInps ? rp->inps : ZERO; rQCInps = rp->inps;
if (QuadroE1() && !acc_imp) if (QuadroE1() && !acc_imp)
{ {
@ -630,7 +631,6 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
tot_rite += rp->rite; tot_rite += rp->rite;
tot_impo += rp->impo; tot_impo += rp->impo;
tot_comp += rp->comp; tot_comp += rp->comp;
if (bInps)
rTotQCInps += rQCInps; rTotQCInps += rQCInps;
if (tipoa_p != tipoa || codanag != codanag_p) if (tipoa_p != tipoa || codanag != codanag_p)
@ -701,7 +701,6 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
qd.put("NETTO", tot_comp - tot_rite); qd.put("NETTO", tot_comp - tot_rite);
else else
qd.put("NETTO", tot_impo - tot_rite); qd.put("NETTO", tot_impo - tot_rite);
qd.write(); qd.write();
} }
} }

View File

@ -94,7 +94,7 @@ HIDDEN real __num_az = ZERO;
TQuadroG::TQuadroG(const char quadro) TQuadroG::TQuadroG(const char quadro)
{ {
_registra = FALSE; _registra = _bUsatoDistinta = FALSE;
switch (quadro) switch (quadro)
{ {
case '3': case '3':
@ -288,6 +288,8 @@ bool TQuadroG::exec_distinta(TMask_field& f, KEY k)
{ {
TExternal_app zzz(DISTINTA_APP); TExternal_app zzz(DISTINTA_APP);
zzz.run(); zzz.run();
// Fai il ricalcolo
app()._bUsatoDistinta = TRUE;
} }
return TRUE; return TRUE;
} }
@ -314,7 +316,7 @@ bool TQuadroG::user_create()
bool TQuadroG::user_destroy() bool TQuadroG::user_destroy()
{ {
delete _rel; delete _msk; delete _rel; delete _msk;
if (_registra) if (_registra || _bUsatoDistinta)
_rip.set(_quadro); _rip.set(_quadro);
return TRUE; return TRUE;
} }

View File

@ -24,7 +24,7 @@ class TQuadroG : public TRelation_application
TRiporti _rip; TRiporti _rip;
TString16 _quadro; TString16 _quadro;
TString80 _title; TString80 _title;
bool _registra; bool _registra, _bUsatoDistinta;
static bool p1_notify(TSheet_field& s, int r, KEY k); static bool p1_notify(TSheet_field& s, int r, KEY k);
static bool p2_notify(TSheet_field& s, int r, KEY k); static bool p2_notify(TSheet_field& s, int r, KEY k);
static bool pII_notify(TSheet_field& s, int r, KEY k); static bool pII_notify(TSheet_field& s, int r, KEY k);

View File

@ -160,18 +160,7 @@ bool M71310_application::cod_tributo(TMask_field& f , KEY k)
bool M71310_application::auto_premi(TMask_field& f, KEY k) bool M71310_application::auto_premi(TMask_field& f, KEY k)
{ {
if (k == K_TAB && f.mask().is_running()) if (k == K_TAB && f.mask().is_running())
{ f.mask().stop_run(K_AUTO_ENTER);
TMask& m = f.mask();
m.stop_run(K_AUTO_ENTER);
/*
TRelation* rel = app()._rel;
TMask& m = f.mask();
m.autosave(rel);
if (rel->read() == NOERR)
m.stop_run(K_AUTO_ENTER);
else
m.stop_run(K_INS); */
}
return TRUE; return TRUE;
} }
@ -179,13 +168,18 @@ bool M71310_application::tipo(TMask_field& f , KEY k)
{ {
if (k == K_SPACE) if (k == K_SPACE)
{ {
char tipo = f.mask().get(F_QLTIPOVERS)[0]; TMask& m = f.mask();
char luogo = f.mask().get(F_QLLUOVERS)[0]; TString16 tipo = m.get(F_QLTIPOVERS);
TString16 luogo = m.get(F_QLLUOVERS);
if (tipo == 'D' && luogo == 'T') if (tipo.not_empty() && luogo.not_empty())
f.mask().hide(F_QLSERIE); if (tipo == "D" && luogo == "T")
{
m.reset(-G_DISTINTA_TESORERIA);
m.disable(-G_DISTINTA_TESORERIA);
}
else else
f.mask().show(F_QLSERIE); m.enable(-G_DISTINTA_TESORERIA);
} }
return TRUE; return TRUE;
} }
@ -194,13 +188,18 @@ bool M71310_application::luogo(TMask_field& f , KEY k)
{ {
if (k == K_SPACE) if (k == K_SPACE)
{ {
char tipo = f.mask().get(F_QLTIPOVERS)[0]; TMask& m = f.mask();
char luogo = f.mask().get(F_QLLUOVERS)[0]; TString16 tipo = m.get(F_QLTIPOVERS);
TString16 luogo = m.get(F_QLLUOVERS);
if (tipo == 'D' && luogo == 'T') if (tipo.not_empty())
f.mask().hide(F_QLSERIE); if (tipo == "D" && luogo == "T")
{
m.reset(-G_DISTINTA_TESORERIA);
m.disable(-G_DISTINTA_TESORERIA);
}
else else
f.mask().show(F_QLSERIE); m.enable(-G_DISTINTA_TESORERIA);
} }
return TRUE; return TRUE;
} }

View File

@ -36,3 +36,9 @@
#define FH_NUMERO 137 #define FH_NUMERO 137
#define FH_NPROG 138 #define FH_NPROG 138
#define F_CCQUIETANZA 139
#define G_ABICAB 7
#define G_DISTINTA 8
#define G_CC 9
#define G_DISTINTA_TESORERIA 10 // v. handler di tipo vers.

View File

@ -16,12 +16,6 @@ ENDPAGE
PAGE "QUADRO L" -1 -1 78 18 PAGE "QUADRO L" -1 -1 78 18
#define ABI_CAB 7
#define NUM_SERIE 8
#define TEXT_NUM_SERIE 9
#define TEXT_ABI_CAB 6
#define GH 10
GROUPBOX DLG_NULL 78 4 GROUPBOX DLG_NULL 78 4
BEGIN BEGIN
PROMPT 0 0 "" PROMPT 0 0 ""
@ -48,30 +42,6 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
TEXT 96
BEGIN
PROMPT 2 10 "Numero serie "
GROUP TEXT_NUM_SERIE
END
TEXT 97
BEGIN
PROMPT 2 10 "Codice ABI "
GROUP ABI_CAB
END
TEXT 98
BEGIN
PROMPT 46 10 "Numero quietanza "
GROUP TEXT_NUM_SERIE
END
TEXT 99
BEGIN
PROMPT 46 10 "Codice CAB "
GROUP ABI_CAB
END
GROUPBOX DLG_NULL 78 7 GROUPBOX DLG_NULL 78 7
BEGIN BEGIN
PROMPT 0 5 "" PROMPT 0 5 ""
@ -150,17 +120,13 @@ LIST F_QLTIPOVERS 15
BEGIN BEGIN
PROMPT 2 8 "Tipo versamento " PROMPT 2 8 "Tipo versamento "
ITEM " |Nessuno" ITEM " |Nessuno"
MESSAGE SHOW,97|SHOW,99|HIDE,96|HIDE,98|RESET,GH@ MESSAGE HIDE,G_ABICAB@|HIDE,G_DISTINTA@|HIDE,G_CC@
MESSAGE ENABLE,F_QLSERIE
ITEM "B|Delega bancaria" ITEM "B|Delega bancaria"
MESSAGE RESET,GH@|HIDE,TEXT_NUM_SERIE@|SHOW,ABI_CAB@ MESSAGE RESET,G_CC@|HIDE,G_CC@|RESET,G_DISTINTA@|HIDE,G_DISTINTA@|SHOW,G_ABICAB@
MESSAGE ENABLE,ABI_CAB@|DISABLE,NUM_SERIE@
ITEM "D|Distinta" ITEM "D|Distinta"
MESSAGE RESET,GH@|SHOW,TEXT_NUM_SERIE@|HIDE,ABI_CAB@ MESSAGE RESET,G_CC@|HIDE,G_CC@|RESET,G_ABICAB@|HIDE,G_ABICAB@|SHOW,G_DISTINTA@
MESSAGE ENABLE,NUM_SERIE@|DISABLE,ABI_CAB@
ITEM "C|C/C Postale" ITEM "C|C/C Postale"
MESSAGE RESET,GH@|SHOW,TEXT_NUM_SERIE@|CLEAR,F_ABI|CLEAR,F_QLSERIE|HIDE,ABI_CAB@ MESSAGE RESET,G_ABICAB@|HIDE,G_ABICAB@|RESET,G_DISTINTA@|HIDE,G_DISTINTA@|SHOW,G_CC@
MESSAGE DISABLE,F_QLSERIE|DISABLE,ABI_CAB@
FIELD LF_QUAL->QLTV FIELD LF_QUAL->QLTV
KEY 1 KEY 1
END END
@ -179,11 +145,41 @@ BEGIN
KEY 1 KEY 1
END END
TEXT DLG_NULL
BEGIN
PROMPT 2 10 "Serie "
GROUP G_DISTINTA G_DISTINTA_TESORERIA
END
TEXT DLG_NULL
BEGIN
PROMPT 46 10 "Numero "
GROUP G_DISTINTA
END
TEXT DLG_NULL
BEGIN
PROMPT 46 10 "Quietanza "
GROUP G_CC
END
TEXT DLG_NULL
BEGIN
PROMPT 2 10 "Codice ABI "
GROUP G_ABICAB
END
TEXT DLG_NULL
BEGIN
PROMPT 46 10 "Codice CAB "
GROUP G_ABICAB
END
STRING F_QLSERIE 5 STRING F_QLSERIE 5
BEGIN BEGIN
PROMPT 23 10 "" PROMPT 23 10 ""
FIELD LF_QUAL->QLSERIE FIELD LF_QUAL->QLSERIE
GROUP NUM_SERIE GROUP G_DISTINTA G_DISTINTA_TESORERIA
KEY 1 KEY 1
END END
@ -191,7 +187,15 @@ STRING F_QLNUMERO 11
BEGIN BEGIN
PROMPT 63 10 "" PROMPT 63 10 ""
FIELD LF_QUAL->QLNUMERO FIELD LF_QUAL->QLNUMERO
GROUP NUM_SERIE GROUP G_DISTINTA
KEY 1
END
STRING F_CCQUIETANZA 11
BEGIN
PROMPT 63 10 ""
FIELD LF_QUAL->QLNUMERO
GROUP G_CC
KEY 1 KEY 1
END END
@ -200,7 +204,7 @@ BEGIN
PROMPT 23 10 "" PROMPT 23 10 ""
FIELD LF_QUAL->QLSERIE FIELD LF_QUAL->QLSERIE
FLAGS "Z" FLAGS "Z"
GROUP ABI_CAB GROUP G_ABICAB
KEY 1 KEY 1
END END
@ -209,7 +213,7 @@ BEGIN
PROMPT 63 10 "" PROMPT 63 10 ""
FIELD LF_QUAL->QLNUMERO[1,5] FIELD LF_QUAL->QLNUMERO[1,5]
FLAGS "Z" FLAGS "Z"
GROUP ABI_CAB GROUP G_ABICAB
KEY 1 KEY 1
END END
@ -218,7 +222,7 @@ BEGIN
PROMPT 69 10 "" PROMPT 69 10 ""
FIELD LF_QUAL->QLNUMERO[6,11] FIELD LF_QUAL->QLNUMERO[6,11]
FLAGS "Z" FLAGS "Z"
GROUP ABI_CAB GROUP G_ABICAB
KEY 1 KEY 1
END END

View File

@ -773,7 +773,8 @@ void TRiporti::calcola_riporti_A(TCursor* cur, const long dich)
TString codfis = cur->curr().get (QUA_CODFISDL); TString codfis = cur->curr().get (QUA_CODFISDL);
char retcon = cur->curr().get_char(QUA_RETCON); char retcon = cur->curr().get_char(QUA_RETCON);
if (causa == 0 && retcon != 'B' && codfis.empty()) // if (causa == 0 && retcon != 'B' && codfis.empty())
if (retcon != 'B' && codfis.empty())
{ {
a0cobb += cur->curr().get_real(QUA_COBBDIP); a0cobb += cur->curr().get_real(QUA_COBBDIP);
a0cnet += cur->curr().get_real(QUA_COMPNETTI); a0cnet += cur->curr().get_real(QUA_COMPNETTI);
@ -1015,7 +1016,7 @@ void TRiporti::calcola_riporti_H(TCursor* cur, const long dich)
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; real totale,somme,ritenute,rTotCSSN;
bool almeno_una_riga = FALSE; bool almeno_una_riga = FALSE;
double percipienti; double percipienti;
@ -1024,6 +1025,7 @@ void TRiporti::calcola_riporti_C(TCursor* cur, const long dich)
totale = ZERO; totale = ZERO;
somme = ZERO; somme = ZERO;
ritenute = ZERO; ritenute = ZERO;
rTotCSSN = ZERO;
(*cur) = 0L; (*cur) = 0L;
@ -1051,6 +1053,7 @@ void TRiporti::calcola_riporti_C(TCursor* cur, const long dich)
totale += cur->curr().get_real(QUC_TOTALE); totale += cur->curr().get_real(QUC_TOTALE);
somme += cur->curr().get_real(QUC_SOMME); somme += cur->curr().get_real(QUC_SOMME);
ritenute += cur->curr().get_real(QUC_RITENUTE); ritenute += cur->curr().get_real(QUC_RITENUTE);
rTotCSSN += cur->curr().get_real(QUC_CONTSSN);
if (!almeno_una_riga) if (!almeno_una_riga)
almeno_una_riga = TRUE; almeno_una_riga = TRUE;
@ -1080,6 +1083,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.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);
@ -1824,7 +1828,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; bool almeno_una_riga=FALSE, almeno_una_riga_distinta=FALSE;
long fogli_comp = 0L, percipienti=0L; long fogli_comp = 0L, percipienti=0L;
TRelation* relp; TRelation* relp;
TCursor* curp; TCursor* curp;
@ -1838,7 +1842,6 @@ void TRiporti::calcola_riporti_G(TCursor* cur, const long dich)
(*cur) = 0L; (*cur) = 0L;
TRecnotype items = cur->items(); TRecnotype items = cur->items();
almeno_una_riga = items > 0L;
// Legge quadro G // Legge quadro G
i24_2 = cur->curr().get_real(QG_P1NUMQT); i24_2 = cur->curr().get_real(QG_P1NUMQT);
@ -1849,6 +1852,9 @@ 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
|| i24_5 != ZERO || i24_6 != ZERO || i24_7 != ZERO
|| i24_8 != ZERO || i24_9 != ZERO;
TString scritta(60); TString scritta(60);
// scritta.format("Calcolo riporti del quadro G per la ditta %ld", _codditta); // scritta.format("Calcolo riporti del quadro G per la ditta %ld", _codditta);
@ -1886,12 +1892,14 @@ void TRiporti::calcola_riporti_G(TCursor* cur, const long dich)
i24_13 += curp->curr().get_real(QGD_ROPE); i24_13 += curp->curr().get_real(QGD_ROPE);
i25_4 += curp->curr().get_real(QGD_ROPESPET); i25_4 += curp->curr().get_real(QGD_ROPESPET);
if (!almeno_una_riga) almeno_una_riga_distinta = TRUE;
almeno_una_riga = TRUE;
progn.addstatus(1); progn.addstatus(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;
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);
basebis.setkey(1); basebis.setkey(1);

View File

@ -77,7 +77,7 @@ BEGIN
PROMPT 1 7 "" PROMPT 1 7 ""
PICTURE 123 PICTURE 123
GROUP 1 GROUP 1
MESSAGE RUN,773mod,-1,771150a,45,"Anagrafica dipendenti",/uPRASSI MESSAGE RUN,773mod,-1,771150a,45,"Anagrafica dipendenti"|K_TAB,RILEGGI_QUADRI
END END
TEXT DLG_NULL TEXT DLG_NULL

View File

@ -10,3 +10,4 @@
#define F_CAB 109 #define F_CAB 109
#define F_PROGBANCA 110 #define F_PROGBANCA 110
#define FH_NUMERO 111 #define FH_NUMERO 111
#define F_CCQUIETANZA 112

View File

@ -24,8 +24,9 @@ ENDPAGE
PAGE "Prospetto dati generali" -1 -1 78 18 PAGE "Prospetto dati generali" -1 -1 78 18
#define ABICAB 1 #define G_ABICAB 1
#define GSERIE 2 #define G_DISTINTA 2
#define G_CC 3
GROUPBOX DLG_NULL 78 4 GROUPBOX DLG_NULL 78 4
BEGIN BEGIN
@ -56,25 +57,25 @@ END
TEXT 96 TEXT 96
BEGIN BEGIN
PROMPT 2 13 "Numero serie " PROMPT 2 13 "Numero serie "
GROUP GSERIE GROUP G_DISTINTA
END END
TEXT 97 TEXT 97
BEGIN BEGIN
PROMPT 2 13 "Codice ABI " PROMPT 2 13 "Codice ABI "
GROUP ABICAB GROUP G_ABICAB
END END
TEXT 98 TEXT 98
BEGIN BEGIN
PROMPT 46 13 "Numero quietanza " PROMPT 46 13 "Numero quietanza "
GROUP GSERIE GROUP G_DISTINTA G_CC
END END
TEXT 99 TEXT 99
BEGIN BEGIN
PROMPT 46 13 "Codice CAB " PROMPT 46 13 "Codice CAB "
GROUP ABICAB GROUP G_ABICAB
END END
DATE F_DATAVERS DATE F_DATAVERS
@ -96,11 +97,11 @@ RADIOBUTTON F_TIPOVERS 26
BEGIN BEGIN
PROMPT 46 7 "Tipo versamento " PROMPT 46 7 "Tipo versamento "
ITEM "B|Delega bancaria" ITEM "B|Delega bancaria"
MESSAGE SHOW,ABICAB@|SHOW,97|SHOW,99|HIDE,96|HIDE,98|HIDE,F_SERIE|HIDE,F_NUMERO MESSAGE RESET,G_DISTINTA@|CLEAR,F_CCQUIETANZA|HIDE,G_DISTINTA@|HIDE,G_CC@|SHOW,G_ABICAB@
ITEM "D|Distinta" ITEM "D|Distinta"
MESSAGE HIDE,ABICAB@|ENABLE,F_SERIE|SHOW,96|SHOW,98|SHOW,F_SERIE|SHOW,F_NUMERO|HIDE,97|HIDE,99| MESSAGE RESET,G_ABICAB@|CLEAR,F_CCQUIETANZA|HIDE,G_ABICAB@|HIDE,G_CC@|SHOW,G_DISTINTA@
ITEM "C|C/C Postale" ITEM "C|C/C Postale"
MESSAGE HIDE,ABICAB@|SHOW,96|SHOW,98|SHOW,F_SERIE|SHOW,F_NUMERO|HIDE,97|HIDE,99|CLEAR,F_SERIE|DISABLE,F_SERIE MESSAGE RESET,G_ABICAB@|HIDE,G_ABICAB@|RESET,G_DISTINTA@|HIDE,G_DISTINTA@|SHOW,G_CC@|ENABLE,G_CC@
FIELD LF_BASE->TIPOVERS FIELD LF_BASE->TIPOVERS
END END
@ -109,7 +110,7 @@ BEGIN
PROMPT 18 13 "" PROMPT 18 13 ""
FIELD LF_BASE->SERIE FIELD LF_BASE->SERIE
FLAGS "Z" FLAGS "Z"
GROUP ABICAB GROUP G_ABICAB
END END
NUMBER F_CAB 5 NUMBER F_CAB 5
@ -117,7 +118,7 @@ BEGIN
PROMPT 63 13 "" PROMPT 63 13 ""
FIELD LF_BASE->NUMERO[1,5] FIELD LF_BASE->NUMERO[1,5]
FLAGS "Z" FLAGS "Z"
GROUP ABICAB GROUP G_ABICAB
END END
NUMBER F_PROGBANCA 6 NUMBER F_PROGBANCA 6
@ -125,21 +126,28 @@ BEGIN
PROMPT 69 13 "" PROMPT 69 13 ""
FLAGS "Z" FLAGS "Z"
FIELD LF_BASE->NUMERO[6,11] FIELD LF_BASE->NUMERO[6,11]
GROUP ABICAB GROUP G_ABICAB
END END
STRING F_SERIE 5 STRING F_SERIE 5
BEGIN BEGIN
PROMPT 18 13 "" PROMPT 18 13 ""
FIELD LF_BASE->SERIE FIELD LF_BASE->SERIE
GROUP GSERIE GROUP G_DISTINTA
END END
STRING F_NUMERO 11 STRING F_NUMERO 11
BEGIN BEGIN
PROMPT 63 13 "" PROMPT 63 13 ""
FIELD LF_BASE->NUMERO FIELD LF_BASE->NUMERO
GROUP GSERIE GROUP G_DISTINTA
END
STRING F_CCQUIETANZA 11
BEGIN
PROMPT 63 13 ""
FIELD LF_BASE->NUMERO
GROUP G_CC
END END
GROUPBOX DLG_NULL 78 11 GROUPBOX DLG_NULL 78 11

View File

@ -20,6 +20,8 @@ HIDDEN const char* _build_key(TVersamento& vers);
// La ditta corrente 770 // La ditta corrente 770
HIDDEN long _codditta_770 = 0L; HIDDEN long _codditta_770 = 0L;
#define QUALIF_EREDE "11"
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// Utility varie // Utility varie
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
@ -218,18 +220,19 @@ bool is_dipendente(const long codditta, const long coddip)
} }
// Stabilisce se il dipendente e' un erede // Stabilisce se il dipendente e' un erede
// SE QUALIFICA=11 17.7.96
bool is_erede(const long codditta, const long coddip) bool is_erede(const long codditta, const long coddip)
{ {
TLocalisamfile dip (LF_DIPEND); TLocalisamfile dip (LF_DIPEND);
TString CodDipDec; TString sQualif;
dip.setkey(1); dip.setkey(1);
dip.zero(); dip.zero();
dip.put(DIP_CODDITTA, (long)codditta); dip.put(DIP_CODDITTA, (long)codditta);
dip.put(DIP_CODIP, (long)coddip); dip.put(DIP_CODIP, (long)coddip);
if (dip.read() == NOERR) if (dip.read() == NOERR)
CodDipDec = dip.get(DIP_CODDIPDEC); sQualif = dip.get(DIP_QUALIFICA);
CodDipDec.trim(); sQualif.trim();
return CodDipDec.not_empty(); return sQualif == QUALIF_EREDE;
} }
// Stabilisce se il dipendente e' un deceduto // Stabilisce se il dipendente e' un deceduto
@ -325,7 +328,10 @@ bool riscrivi_erede(const long codditta, const long deceduto, const long erede,
} }
} }
if (!trovato) dip.reread(_unlock); if (!trovato) dip.reread(_unlock);
return trovato; // return trovato; // Cosi' fallirebbe anche nel caso di un codice gia'
// cancellato (per es. azzero il codice e faccio registra due volte la seconda
// fallirebbe).
return TRUE;
} }
bool esiste_pag_in_periodo(TSchedaP& sch, const TDate& data_da, const TDate& data_a) bool esiste_pag_in_periodo(TSchedaP& sch, const TDate& data_da, const TDate& data_a)

View File

@ -17,3 +17,4 @@
#define QPF_CCQUIETANZA 183

View File

@ -8,10 +8,9 @@ ENDPAGE
// 2.4.96 Messo CAB di 5. Abi e Cab zerofilled // 2.4.96 Messo CAB di 5. Abi e Cab zerofilled
// //
#define ABI_CAB 7 #define G_ABICAB 7
#define NUM_SERIE 8 #define G_DISTINTA 8
#define TEXT_NUM_SERIE 9 #define G_CC 9
#define TEXT_ABI_CAB 6
PAGE "MODULO 770 - QUADRO N" -1 -1 78 18 PAGE "MODULO 770 - QUADRO N" -1 -1 78 18
@ -49,12 +48,6 @@ BEGIN
DISPLAY "Serie/ABI" SERIE DISPLAY "Serie/ABI" SERIE
DISPLAY "Numero/Bollettino/CAB" NUMERO DISPLAY "Numero/Bollettino/CAB" NUMERO
OUTPUT QPF_NPROG NPROG OUTPUT QPF_NPROG NPROG
OUTPUT QPF_CODTRIB CODTRIB
OUTPUT QPF_DATAVERS DATAVERS
OUTPUT QPF_TIPOVERS TIPOVERS
OUTPUT QPF_INTERDIP INTERDIP
OUTPUT QPF_INTERDAT INTERDAT
OUTPUT QPF_IMPOSTA IMPOSTA
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
KEY 1 KEY 1
END END
@ -128,25 +121,25 @@ END
TEXT 96 TEXT 96
BEGIN BEGIN
PROMPT 2 14 "Numero serie " PROMPT 2 14 "Numero serie "
GROUP TEXT_NUM_SERIE GROUP G_DISTINTA
END END
TEXT 97 TEXT 97
BEGIN BEGIN
PROMPT 2 14 "Codice ABI " PROMPT 2 14 "Codice ABI "
GROUP ABI_CAB GROUP G_ABICAB
END END
TEXT 98 TEXT 98
BEGIN BEGIN
PROMPT 40 14 "Numero quietanza " PROMPT 40 14 "Numero quietanza "
GROUP TEXT_NUM_SERIE GROUP G_DISTINTA G_CC
END END
TEXT 99 TEXT 99
BEGIN BEGIN
PROMPT 42 14 "Codice CAB " PROMPT 42 14 "Codice CAB "
GROUP ABI_CAB GROUP G_ABICAB
END END
GROUPBOX DLG_NULL 0 6 GROUPBOX DLG_NULL 0 6
@ -163,14 +156,13 @@ LIST QPF_TIPOVERS 1 18
BEGIN BEGIN
PROMPT 2 12 "" PROMPT 2 12 ""
ITEM " |Nessuno" ITEM " |Nessuno"
MESSAGE SHOW,97|SHOW,99|HIDE,96|HIDE,98|ENABLE,QPF_SERIE|HIDE,NUM_SERIE@ MESSAGE HIDE,G_DISTINTA@|HIDE,G_ABICAB@|HIDE,G_CC@
ITEM "B|Delega bancaria" ITEM "B|Delega bancaria"
MESSAGE HIDE,TEXT_NUM_SERIE@|SHOW,ABI_CAB@|ENABLE,ABI_CAB@|HIDE,NUM_SERIE@ MESSAGE RESET,G_CC@|HIDE,G_CC@|RESET,G_DISTINTA@|HIDE,G_DISTINTA@|SHOW,G_ABICAB@
ITEM "D|Distinta" ITEM "D|Distinta"
MESSAGE SHOW,TEXT_NUM_SERIE@|ENABLE,NUM_SERIE@|SHOW,NUM_SERIE@|HIDE,ABI_CAB@|DISABLE,ABI_CAB@ MESSAGE RESET,G_CC@|HIDE,G_CC@|RESET,G_ABICAB@|HIDE,G_ABICAB@|SHOW,G_DISTINTA@
ITEM "C|C/C Postale" ITEM "C|C/C Postale"
MESSAGE SHOW,TEXT_NUM_SERIE@|CLEAR,QPF_ABI|CLEAR,QPF_SERIE|HIDE,ABI_CAB@ MESSAGE RESET,G_DISTINTA@|HIDE,G_DISTINTA@|RESET,G_ABICAB@|HIDE,G_ABICAB@|SHOW,G_CC@
MESSAGE DISABLE,QPF_SERIE|DISABLE,ABI_CAB@
FIELD LF_QUAP->TIPOVERS FIELD LF_QUAP->TIPOVERS
END END
@ -184,38 +176,56 @@ DATE QPF_DATAVERS
BEGIN BEGIN
PROMPT 43 12 "Data versamento " PROMPT 43 12 "Data versamento "
FIELD LF_QUAP->DATAVERS FIELD LF_QUAP->DATAVERS
WARNING "Manca la data versamento"
VALIDATE REQIF_FUNC 1 QPF_TIPOVERS
END END
STRING QPF_SERIE 5 STRING QPF_SERIE 5
BEGIN BEGIN
PROMPT 23 14 "" PROMPT 23 14 ""
FIELD LF_QUAP->SERIE FIELD LF_QUAP->SERIE
GROUP NUM_SERIE WARNING "Manca la serie"
VALIDATE REQIF_FUNC 1 QPF_TIPOVERS
GROUP G_DISTINTA
END END
STRING QPF_NUMERO 11 STRING QPF_NUMERO 11
BEGIN BEGIN
PROMPT 58 14 "" PROMPT 58 14 ""
WARNING "Manca il numero"
VALIDATE REQIF_FUNC 1 QPF_TIPOVERS
FIELD LF_QUAP->NUMERO FIELD LF_QUAP->NUMERO
GROUP NUM_SERIE GROUP G_DISTINTA
END END
NUMBER QPF_ABI 5 NUMBER QPF_ABI 5
BEGIN BEGIN
PROMPT 23 14 "" PROMPT 23 14 ""
FIELD LF_QUAP->SERIE FIELD LF_QUAP->SERIE
WARNING "Manca il codice ABI"
VALIDATE REQIF_FUNC 1 QPF_TIPOVERS
FLAGS "Z" FLAGS "Z"
GROUP ABI_CAB GROUP G_ABICAB
END END
NUMBER QPF_CAB 5 NUMBER QPF_CAB 5
BEGIN BEGIN
PROMPT 58 14 "" PROMPT 58 14 ""
FIELD LF_QUAP->NUMERO FIELD LF_QUAP->NUMERO
WARNING "Manca il codice CAB"
VALIDATE REQIF_FUNC 1 QPF_TIPOVERS
FLAGS "Z" FLAGS "Z"
GROUP ABI_CAB GROUP G_ABICAB
END END
STRING QPF_CCQUIETANZA 11
BEGIN
PROMPT 58 14 ""
WARNING "Manca il numero quietanza"
VALIDATE REQIF_FUNC 1 QPF_TIPOVERS
FIELD LF_QUAP->NUMERO
GROUP G_CC
END
ENDPAGE ENDPAGE

View File

@ -17,3 +17,4 @@
#define QSF_CCQUIETANZA 183

View File

@ -8,10 +8,9 @@ ENDPAGE
// 2.4.96 Messo CAB di 5. Abi e Cab zerofilled // 2.4.96 Messo CAB di 5. Abi e Cab zerofilled
// //
#define ABI_CAB 7 #define G_ABICAB 7
#define NUM_SERIE 8 #define G_DISTINTA 8
#define TEXT_NUM_SERIE 9 #define G_CC 9
#define TEXT_ABI_CAB 6
PAGE "MODULO 770 - QUADRO S" -1 -1 78 18 PAGE "MODULO 770 - QUADRO S" -1 -1 78 18
@ -49,12 +48,6 @@ BEGIN
DISPLAY "Serie/ABI" SERIE DISPLAY "Serie/ABI" SERIE
DISPLAY "Numero/Bollettino/CAB" NUMERO DISPLAY "Numero/Bollettino/CAB" NUMERO
OUTPUT QSF_NPROG NPROG OUTPUT QSF_NPROG NPROG
OUTPUT QSF_CODTRIB CODTRIB
OUTPUT QSF_DATAVERS DATAVERS
OUTPUT QSF_TIPOVERS TIPOVERS
OUTPUT QSF_INTERDIP INTERDIP
OUTPUT QSF_INTERDAT INTERDAT
OUTPUT QSF_IMPOSTA IMPOSTA
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
KEY 1 KEY 1
END END
@ -128,25 +121,25 @@ END
TEXT 96 TEXT 96
BEGIN BEGIN
PROMPT 2 14 "Numero serie " PROMPT 2 14 "Numero serie "
GROUP TEXT_NUM_SERIE GROUP G_DISTINTA
END END
TEXT 97 TEXT 97
BEGIN BEGIN
PROMPT 2 14 "Codice ABI " PROMPT 2 14 "Codice ABI "
GROUP ABI_CAB GROUP G_ABICAB
END END
TEXT 98 TEXT 98
BEGIN BEGIN
PROMPT 42 14 "Numero quietanza " PROMPT 42 14 "Numero quietanza "
GROUP TEXT_NUM_SERIE GROUP G_DISTINTA G_CC
END END
TEXT 99 TEXT 99
BEGIN BEGIN
PROMPT 42 14 "Codice CAB " PROMPT 42 14 "Codice CAB "
GROUP ABI_CAB GROUP G_ABICAB
END END
GROUPBOX DLG_NULL 0 6 GROUPBOX DLG_NULL 0 6
@ -163,13 +156,13 @@ LIST QSF_TIPOVERS 1 18
BEGIN BEGIN
PROMPT 2 12 "" PROMPT 2 12 ""
ITEM " |Nessuno" ITEM " |Nessuno"
MESSAGE SHOW,97|SHOW,99|HIDE,96|HIDE,98|ENABLE,QSF_SERIE|HIDE,NUM_SERIE@ MESSAGE HIDE,G_DISTINTA@|HIDE,G_CC@|HIDE,G_ABICAB@
ITEM "B|Delega bancaria" ITEM "B|Delega bancaria"
MESSAGE HIDE,TEXT_NUM_SERIE@|SHOW,ABI_CAB@|ENABLE,ABI_CAB@|DISABLE,NUM_SERIE@|HIDE,NUM_SERIE@ MESSAGE RESET,G_CC@|HIDE,G_CC@|RESET,G_DISTINTA@|HIDE,G_DISTINTA@|SHOW,G_ABICAB@
ITEM "D|Distinta" ITEM "D|Distinta"
MESSAGE SHOW,TEXT_NUM_SERIE@|HIDE,ABI_CAB@|SHOW,NUM_SERIE@|ENABLE,NUM_SERIE@|DISABLE,ABI_CAB@ MESSAGE RESET,G_CC@|HIDE,G_CC@|RESET,G_ABICAB@|HIDE,G_ABICAB@|SHOW,G_DISTINTA@
ITEM "C|C/C Postale" ITEM "C|C/C Postale"
MESSAGE SHOW,TEXT_NUM_SERIE@|CLEAR,QSF_ABI|CLEAR,QSF_SERIE|HIDE,ABI_CAB@|DISABLE,QSF_SERIE|DISABLE,ABI_CAB@ MESSAGE RESET,G_DISTINTA@|HIDE,G_DISTINTA@|RESET,G_ABICAB@|HIDE,G_ABICAB@|SHOW,G_CC@
FIELD LF_QUAS->TIPOVERS FIELD LF_QUAS->TIPOVERS
END END
@ -183,38 +176,56 @@ DATE QSF_DATAVERS
BEGIN BEGIN
PROMPT 43 12 "Data versamento " PROMPT 43 12 "Data versamento "
FIELD LF_QUAS->DATAVERS FIELD LF_QUAS->DATAVERS
WARNING "Manca la data versamento"
VALIDATE REQIF_FUNC 1 QSF_TIPOVERS
END END
STRING QSF_SERIE 5 STRING QSF_SERIE 5
BEGIN BEGIN
PROMPT 23 14 "" PROMPT 23 14 ""
FIELD LF_QUAS->SERIE FIELD LF_QUAS->SERIE
GROUP NUM_SERIE GROUP G_DISTINTA
WARNING "Manca la serie"
VALIDATE REQIF_FUNC 1 QSF_TIPOVERS
END END
STRING QSF_NUMERO 11 STRING QSF_NUMERO 11
BEGIN BEGIN
PROMPT 58 14 "" PROMPT 58 14 ""
FIELD LF_QUAS->NUMERO FIELD LF_QUAS->NUMERO
GROUP NUM_SERIE WARNING "Manca il numero"
VALIDATE REQIF_FUNC 1 QSF_TIPOVERS
GROUP G_DISTINTA
END END
NUMBER QSF_ABI 5 NUMBER QSF_ABI 5
BEGIN BEGIN
PROMPT 23 14 "" PROMPT 23 14 ""
FIELD LF_QUAS->SERIE FIELD LF_QUAS->SERIE
WARNING "Manca il codice ABI"
VALIDATE REQIF_FUNC 1 QSF_TIPOVERS
FLAGS "Z" FLAGS "Z"
GROUP ABI_CAB GROUP G_ABICAB
END END
NUMBER QSF_CAB 5 NUMBER QSF_CAB 5
BEGIN BEGIN
PROMPT 58 14 "" PROMPT 58 14 ""
FIELD LF_QUAS->NUMERO FIELD LF_QUAS->NUMERO
WARNING "Manca il codice CAB"
VALIDATE REQIF_FUNC 1 QSF_TIPOVERS
FLAGS "Z" FLAGS "Z"
GROUP ABI_CAB GROUP G_ABICAB
END END
STRING QSF_CCQUIETANZA 11
BEGIN
PROMPT 58 14 ""
FIELD LF_QUAS->NUMERO
WARNING "Manca il numero quietanza"
VALIDATE REQIF_FUNC 1 QSF_TIPOVERS
GROUP G_CC
END
ENDPAGE ENDPAGE

View File

@ -1,3 +1,602 @@
<<<<<<< quadb_b1.cpp
// quadb_b1.cpp
#include <relapp.h>
#include <urldefid.h>
#include <tabutil.h>
#include <config.h>
#include "dipend.h"
#include "774200.h"
#include "77lib.h"
#include "quadrob.h"
#include "quadrob1.h"
#include "77qb.h"
#include "77qb1.h"
class TQuadriBB1_application : public TRelation_application
{
static bool codditta77_handler (TMask_field& m, KEY k);
static bool PrimoNprogLibero (TMask& m, const long codditta, const long coddip);
static bool CodDipHandler (TMask_field& m, KEY k);
static bool NprogExitHandler (TMask_field& m, KEY k);
static bool QBTotRedImpHandler (TMask_field& f, KEY k);
static bool QBAmmRopeHandler (TMask_field& f, KEY k);
static bool QBTotIndennHandler (TMask_field& f, KEY k);
static void BB1SettaCognomeNome(TMask& m);
const char* _maskname;
int _num;
int _pos_quadro; // posizione nell'array dei quadri. Usato in set_comp
TString16 _quadro;
TRiporti _rip;
TRelation* _rel;
TMask* _msk[2];
bool _registra;
int _anno_dic;
int _mode;
bool _MaskConAnnoDic, _MaskConCodditta;
bool MaskConAnnoDic() const;
bool MaskConCodditta() const { return _MaskConCodditta; }
bool QuadroB() const { return _num == LF_QUAB; }
bool QuadroB1() const { return _num == LF_QUAB1; }
bool CheckImporti(const TMask& m);
bool EsisteGiaCodDip(const TMask& m);
bool EsisteGiaRecordDip(const TMask& m);
long _codditta;
long _lCodDip;
int _iNprog;
TString _sCognome, _sNome;
void init_mask(TMask&);
protected:
virtual bool user_create();
virtual bool user_destroy();
// virtual int read(TMask& m);
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual void on_config_change();
virtual TMask* get_mask(int);
virtual bool changing_mask(int);
TMask* load_mask(int n);
virtual TRelation* get_relation() const { return _rel; }
virtual void init_query_mode(TMask&);
virtual void init_query_insert_mode(TMask&);
virtual void init_insert_mode(TMask&);
virtual void init_modify_mode(TMask&);
public:
TQuadriBB1_application(const char* name, const int num, const char* quadro);
};
TQuadriBB1_application::TQuadriBB1_application(const char* name, const int num, const char* quadro)
: _maskname(name), _num(num), _mode(0),
_MaskConCodditta(FALSE), _MaskConAnnoDic(FALSE),
_rel(NULL), _quadro(quadro)
{
memset(_msk, 0, sizeof(_msk));
switch (_num)
{
case LF_QUAB:
_pos_quadro = B;
break;
case LF_QUAB1:
_pos_quadro = B1;
break;
}
}
TQuadriBB1_application& app() { return (TQuadriBB1_application&)main_app(); }
bool TQuadriBB1_application::changing_mask(int mode)
{
if (mode == MODE_QUERY)
return _mode != MODE_QUERY;
else
return TRUE;
}
TMask* TQuadriBB1_application::get_mask(int mode)
{
const int m = (mode == MODE_QUERY) ? 0 : 1;
_mode = mode;
return load_mask(m);
}
TMask* TQuadriBB1_application::load_mask(int n)
{
if (_msk[n] != NULL)
return _msk[n];
TFilename name("77qb");
if (n == 0)
{
switch (_num)
{
case LF_QUAB:
name << 'a';
break;
case LF_QUAB1:
name << "1a";
break;
default:
break;
}
}
else
{
switch (_num)
{
case LF_QUAB:
name << 'b';
break;
case LF_QUAB1:
name << "1b";
break;
default:
break;
}
}
TMask* m = new TMask(name);
m->set_handler(CODDITTA77, codditta77_handler);
switch (n)
{
case 0:
if (QuadroB())
{
m->set_handler(QBF_CODDIP_QB, CodDipHandler);
m->set_handler(QBF_CODDIP_ANAG, CodDipHandler);
set_search_field(QBF_NPROG);
}
else
{
m->set_handler(QB1F_CODDIP_QB1, CodDipHandler);
m->set_handler(QB1F_CODDIP_ANAG, CodDipHandler);
set_search_field(QB1F_NPROG);
}
m->set_handler(QuadroB() ? QBF_NPROG : QB1F_NPROG, NprogExitHandler);
break;
case 1:
if (m)
if (QuadroB())
{
m->set_handler(QBF_TOTIMP, QBTotRedImpHandler);
m->set_handler(QBF_ROPE, QBAmmRopeHandler);
m->set_handler(QBF_AMMNETTO, QBTotIndennHandler);
m->set_handler(QBF_AMMNETTO2, QBTotIndennHandler);
m->set_handler(QBF_CONTLAV, QBTotIndennHandler);
m->set_handler(QBF_TFR7494, QBTotIndennHandler);
m->set_handler(QBF_INDEN7494, QBTotIndennHandler);
}
// m->disable(DLG_FINDREC);
break;
default:
break;
}
return _msk[n] = m;
}
bool TQuadriBB1_application::MaskConAnnoDic() const
{
return _MaskConAnnoDic;
}
void TQuadriBB1_application::on_config_change()
{
TConfig conf(CONFIG_STUDIO);
_anno_dic = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year());
}
bool TQuadriBB1_application::user_create()
{
_registra = FALSE;
_rel = new TRelation(_num);
_codditta = get_firm_770();
return TRUE;
}
bool TQuadriBB1_application::user_destroy()
{
if (_quadro != "")
if (_registra)
_rip.set(_quadro);
if (_msk[1] != NULL) delete _msk[1];
if (_msk[0] != NULL) delete _msk[0];
delete _rel;
return TRUE;
}
// Q.B. Controlla che ci sia diverso da ZERO il tot.red.imp.
bool TQuadriBB1_application::CheckImporti(const TMask& m)
{
real TotRedImp(m.get(QBF_TOTIMP));
return TotRedImp != ZERO;
}
// Controlla se esiste gia' un record con lo stesso cod.dip.
bool TQuadriBB1_application::EsisteGiaCodDip(const TMask& m)
{
TLocalisamfile q(_num);
const long codip = m.get_long(QuadroB()? QBF_CODDIP : QB1F_CODDIP);
q.zero();
q.put(QB_CODDITTA, _codditta);
q.put(QB_CODDIP, codip);
TRectype dep(q.curr());
q.read(_isgteq);
const bool bEq = q.curr() == dep;
return bEq;
}
// Controlla se esiste gia' una chiave completa
bool TQuadriBB1_application::EsisteGiaRecordDip(const TMask& m)
{
TLocalisamfile q(_num);
const long codip = m.get_long(QuadroB()? QBF_CODDIP : QB1F_CODDIP);
const long nprog = m.get_long(QuadroB()? QBF_NPROG : QB1F_NPROG);
q.zero();
q.put(QB_CODDITTA, _codditta);
q.put(QB_CODDIP, codip);
q.put(QB_NPROG, nprog);
TRectype dep(q.curr());
const bool bEq = q.read() == NOERR;
return bEq;
}
int TQuadriBB1_application::rewrite(const TMask& m)
{
m.autosave(_rel);
const int err = _rel->rewrite();
_registra = err == NOERR;
return err;
}
/*
int TQuadriBB1_application::read(TMask& m)
{
int err;
_rel->lfile().put("CODDITTA", (long)_codditta);
_rel->lfile().put("CODDIP", (long)_lCodDip);
_rel->lfile().put("NPROG", _iNprog);
err = _rel->read();
return err;
}
*/
int TQuadriBB1_application::write(const TMask& m)
{
m.autosave(_rel);
if (QuadroB1())
if (EsisteGiaRecordDip(m))
return warning_box("E' già presente un record per questo dipendente");
const int err = _rel->write();
_registra = err == NOERR;
return err;
}
bool TQuadriBB1_application::remove()
{
_registra = TRUE;
return TRelation_application::remove();
}
void TQuadriBB1_application::init_mask(TMask& m)
{
if (QuadroB())
{
// leggi dalla maschera di query, che' dovrebbero li' esservi sempre..
const long codditta = _msk[0]->get_long(QBF_CODDITTA);
const long codip = _msk[0]->get_long(QBF_CODDIP);
if (codip==0L)
return;
if (is_erede(codditta,codip) && modifica(m))
{
m.disable(-GROUP_ALL);
m.enable(-GROUP_EREDE);
}
else
{
m.enable(-GROUP_ALL);
if (is_deceduto(codditta,codip) || is_dipendente(codditta,codip))
m.disable(-GROUP_DIPDEC);
else
m.enable(-GROUP_DIPDEC);
}
}
}
void TQuadriBB1_application::init_modify_mode(TMask& m)
{
init_mask(m);
/*
if (QuadroB())
{
m.set(QBF_CODDIP, _lCodDip);
m.set(QBF_COGNOME, _sCognome);
m.set(QBF_NOME, _sNome);
m.set(QBF_NPROG, _iNprog);
}
else
{
m.set(QB1F_CODDIP, _lCodDip);
m.set(QB1F_COGNOME, _sCognome);
m.set(QB1F_NOME, _sNome);
m.set(QB1F_NPROG, _iNprog);
}*/
}
void TQuadriBB1_application::init_insert_mode(TMask& m)
{
init_mask(m);
}
void TQuadriBB1_application::init_query_mode(TMask& m)
{
m.set(ANNODIC77, _anno_dic);
if (QuadroB())
{
m.send_key(K_SHIFT+K_CTRL+'h', -QBG_ANADIP); // nasconde dipend.
m.send_key(K_SHIFT+K_CTRL+'s', -QBG_QUADROB); // ricerca su B
}
else
{
m.send_key(K_SHIFT+K_CTRL+'h', -QB1G_ANADIP); // nasconde dipend.
m.send_key(K_SHIFT+K_CTRL+'s', -QB1G_QUADROB); // ricerca su B
}
}
void TQuadriBB1_application::init_query_insert_mode(TMask& m)
{
m.set(ANNODIC77, _anno_dic);
if (QuadroB())
{
m.send_key(K_SHIFT+K_CTRL+'h', -QBG_QUADROB); // group 1 Ricerca su ANAGR.DIPENDENTI
m.send_key(K_SHIFT+K_CTRL+'s', -QBG_ANADIP); // group 2 Nasconde QUADROB
}
else
{
m.send_key(K_SHIFT+K_CTRL+'h', -QB1G_QUADROB); // group 1 Ricerca su ANAGR.DIPENDENTI
m.send_key(K_SHIFT+K_CTRL+'s', -QB1G_ANADIP); // group 2 Nasconde QUADROB
}
}
bool TQuadriBB1_application::codditta77_handler(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TMask& m = f.mask();
TString16 codditta; codditta << app()._codditta;
if (codditta != "0")
{
m.set(CODDITTA77, codditta);
m.field(CODDITTA77).check();
}
}
return TRUE;
}
///////////////////////////////////////////////////////////
// 2 modi :
// RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" [771230i.uml]
// oppure
// 773 -1 menu_st "Stampe dichiarazioni" [prassi.mnu]
// QUADRO N:
// 773,-2,77qn,72,"Quadro N","N"
///////////////////////////////////////////////////////////
int quadriB_B1(int argc, char* argv[])
{
TFilename mask;
int num = 0;
if (argc > 1)
mask = argv[2];
num = atoi(argv[3]);
const char* title = argv[4];
const char* quadro = argv[5];
TQuadriBB1_application a(mask, num, quadro);
a.run(argc, argv, title ? title : "Test Relation Application");
return 0;
}
//
// CodDipHandler
//
// 1 - Controlla che il codice dipendente esista
// 2 - Propone il primo progressivo disponibile per quel codice
//
bool TQuadriBB1_application::CodDipHandler(TMask_field& f, KEY k)
{
TMask& m = f.mask();
if (!m.is_running()) return TRUE;
if (k == K_ENTER)
{
const long codip = atol(f.get());
if (codip==0L)
return TRUE;
if (!esiste_dipendente(app()._codditta, codip))
return f.warning_box("Dipendente inesistente");
}
if (k == K_TAB)
{
const long codip = atol(f.get());
if (codip==0L)
return TRUE;
if (!esiste_dipendente(app()._codditta, codip))
return f.warning_box("Dipendente inesistente");
PrimoNprogLibero(m, app()._codditta, codip);
}
return TRUE;
}
// Compila cognome e nome se vuoti
void TQuadriBB1_application::BB1SettaCognomeNome(TMask& m)
{
const int iDlgCognome = app().QuadroB() ? QBF_COGNOME : QB1F_COGNOME;
const int iDlgNome = app().QuadroB() ? QBF_NOME : QB1F_NOME;
const int iDlgNProg = app().QuadroB() ? QBF_NPROG : QB1F_NPROG;
const int iProg = m.get_int(iDlgNProg);
TString sCognome(m.get(iDlgCognome));
TString sNome;
if (app()._lCodDip != 0L)
{
TLocalisamfile dip (LF_DIPEND);
dip.zero();
dip.put(DIP_CODDITTA, app()._codditta);
dip.put(DIP_CODIP, app()._lCodDip);
if (dip.read() == NOERR)
{
sCognome = dip.get("COGNOME");
sNome = dip.get("NOME");
app()._sCognome = sCognome;
app()._sNome = sNome;
app()._iNprog = iProg;
m.set(iDlgCognome, sCognome);
m.set(iDlgNome, sNome);
}
}
}
bool TQuadriBB1_application::NprogExitHandler(TMask_field& f, KEY k)
{
TMask& m = f.mask();
if (!m.is_running()) return TRUE;
if (k == K_TAB)
{
TString nprog(f.get());
if (nprog.not_empty())
{
const int ID_CODDIP = app().QuadroB()? QBF_CODDIP : QB1F_CODDIP;
const long codip = app()._lCodDip = m.get_long(ID_CODDIP);
const long codditta = app()._codditta;
// const long codip = m.get_long(ID_CODDIP);
// const long codditta = app()._codditta;
if (codip==0L)
return TRUE;
// Nel B1 e nel B (per gli eredi) può esserci un solo record per dipendente
if (app().QuadroB1() || (app().QuadroB() && is_erede(codditta,codip)) )
// Se esiste gia' un record per questo dipendente MA NON la chiave completa
// (ora presente nella maschera) rifiuta il record
// (impedisce cioe' di andare in inserimento, a meno che non sia la prima
// volta, cioe' a meno che non esista ancora nessun record per il dip.
// (questo caso e' segnalato dal fallimento della EsisteGiaCodDip) )
if (app().EsisteGiaCodDip(m) && !app().EsisteGiaRecordDip(m))
return warning_box("Esiste già una riga per questo dipendente");
// Compila cognome e nome se vuoti
BB1SettaCognomeNome(m);
m.stop_run(K_AUTO_ENTER);
}
}
return TRUE;
}
bool TQuadriBB1_application::PrimoNprogLibero(TMask& m, const long codditta, const long codip)
{
// Propone il primo numero disponibile
if (codip != 0L)
{
long nprog = 0L;
const int id_nprog = app().QuadroB() ? QBF_NPROG : QB1F_NPROG;
const bool erede = is_erede(codditta,codip);
bool EsisteGiaDip = FALSE;
TLocalisamfile qb(app()._num);
qb.zero();
qb.put(QB_CODDITTA, codditta);
qb.put(QB_CODDIP, codip);
TRectype dep(qb.curr());
qb.read(_isgteq);
TRecnotype lPosPrec = qb.recno();
for ( ; !qb.eof(); qb.next())
{
if (qb.curr() > dep) break;
EsisteGiaDip = TRUE;
nprog = qb.get_long(QB_NPROG);
}
qb.readat(lPosPrec);
// Nel B se e' un erede si puo' solo andare in modifica
// Nel B1 è consentito un solo record per dipendente
if ( (nprog == 0) || (app().QuadroB1() && !EsisteGiaDip) ||
(app().QuadroB() && !erede) )
nprog++;
TString16 nprog_str; nprog_str << nprog;
m.set(id_nprog, nprog_str);
}
return TRUE;
}
///////////////////////////////////////////////////////////////////////////////////
// QUADRO B
///////////////////////////////////////////////////////////////////////////////////
bool TQuadriBB1_application::QBTotRedImpHandler(TMask_field& f, KEY k)
{
TMask& m = f.mask();
if (k == K_ENTER && !ricerca(m))
{
const long codditta = m.get_long(QBF_CODDITTA);
const long codip = m.get_long(QBF_CODDIP);
if (!is_erede(codditta,codip))
{
real totimp(f.get());
if (totimp == ZERO)
return f.warning_box("Il totale reddito imponibile non può essere nullo");
}
}
return TRUE;
}
bool TQuadriBB1_application::QBAmmRopeHandler(TMask_field& f, KEY k)
{
TMask& m = f.mask();
if (k == K_ENTER && !ricerca(m))
{
TMask& m = f.mask();
const long codditta = m.get_long(QBF_CODDITTA);
const long codip = m.get_long(QBF_CODDIP);
if (!is_erede(codditta,codip))
{
real totimp(m.get(QBF_TOTIMP));
real rope(f.get());
if (rope > totimp)
return f.warning_box("Il totale ritenute non può essere maggiore del totale reddito imponibile");
}
}
return TRUE;
}
// 23.5.96 Calcola totale indennità
bool TQuadriBB1_application::QBTotIndennHandler(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
const bool ricalcola = f.focusdirty();
if (ricalcola)
{
TMask& m = f.mask();
real c20 = m.get_real(QBF_AMMNETTO);
real c24 = m.get_real(QBF_AMMNETTO2);
real c25 = m.get_real(QBF_CONTLAV);
real c26 = m.get_real(QBF_TFR7494);
real c27 = m.get_real(QBF_INDEN7494);
real c28 = c20 + c24 - c25 + c26 + c27;
TString c28s(c28.string());
m.set(QBF_TIND7494, c28s);
}
}
return TRUE;
}
=======
// quadb_b1.cpp // quadb_b1.cpp
#include <relapp.h> #include <relapp.h>
#include <urldefid.h> #include <urldefid.h>
@ -592,4 +1191,5 @@ bool TQuadriBB1_application::QBTotIndennHandler(TMask_field& f, KEY k)
} }
>>>>>>> 1.3 >>>>>>> 1.3
>>>>>>> 1.4

View File

@ -14,5 +14,6 @@
#define QUC_PERC "PERC" #define QUC_PERC "PERC"
#define QUC_RITENUTE "RITENUTE" #define QUC_RITENUTE "RITENUTE"
#define QUC_NETTO "NETTO" #define QUC_NETTO "NETTO"
#define QUC_CONTSSN "CONTSSN"
#endif #endif