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)
@ -540,15 +549,25 @@ bool TSchedaPercipienti::pag_select (TMask_field& f, KEY k)
void TSchedaPercipienti::work_tipoluogo(TMask_field& f) void TSchedaPercipienti::work_tipoluogo(TMask_field& 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];
TSheet_field& ss = app().vers(); TSheet_field& ss = app().vers();
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,21 +577,18 @@ 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 }
if (tipo == 'C') // else
{ if (tipo == 'C')
m.show (-5); // SOLO numero versamento {
ss.disable_cell(row,4); m.show (-5); // SOLO numero versamento
} 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);
} }
@ -565,11 +565,13 @@ bool TQuadroA::QA_tot_impon_hnd (TMask_field& f, KEY k)
bool ForzaRicalcolo = f.focusdirty(); bool ForzaRicalcolo = f.focusdirty();
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,8 +631,7 @@ 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)
nprog = 1; nprog = 1;
@ -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,14 +24,14 @@ 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);
static bool pIII_notify(TSheet_field& s, int r, KEY k); static bool pIII_notify(TSheet_field& s, int r, KEY k);
static bool calc_amm(TMask_field& f, KEY k); static bool calc_amm(TMask_field& f, KEY k);
static bool exec_distinta(TMask_field& f, KEY k); static bool exec_distinta(TMask_field& f, KEY k);
static void update_totals(TSheet_field& f, int ss); static void update_totals(TSheet_field& f, int ss);
protected: protected:
virtual bool user_create(); virtual bool user_create();
virtual bool user_destroy(); virtual bool user_destroy();

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")
else {
f.mask().show(F_QLSERIE); m.reset(-G_DISTINTA_TESORERIA);
m.disable(-G_DISTINTA_TESORERIA);
}
else
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")
else {
f.mask().show(F_QLSERIE); m.reset(-G_DISTINTA_TESORERIA);
m.disable(-G_DISTINTA_TESORERIA);
}
else
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 ""
@ -88,30 +58,30 @@ BEGIN
USE LF_QUAL KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (QLAP=#F_ANNODIC)) USE LF_QUAL KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (QLAP=#F_ANNODIC))
INPUT CODDITTA F_CODDITTA INPUT CODDITTA F_CODDITTA
INPUT QLAP F_QLANNOPAG INPUT QLAP F_QLANNOPAG
DISPLAY "A.P." QLAP DISPLAY "A.P." QLAP
DISPLAY "M.P." QLMP DISPLAY "M.P." QLMP
DISPLAY "Ritenute@15" QLRITEFF DISPLAY "Ritenute@15" QLRITEFF
DISPLAY "Importo versato" QLRITVER DISPLAY "Importo versato" QLRITVER
DISPLAY "L.V." QLLV DISPLAY "L.V." QLLV
DISPLAY "T.V." QLTV DISPLAY "T.V." QLTV
DISPLAY "C.T." QLCT DISPLAY "C.T." QLCT
DISPLAY "Art.Bil." QLAB DISPLAY "Art.Bil." QLAB
DISPLAY "Data Vers." QLDV DISPLAY "Data Vers." QLDV
DISPLAY "Serie/ABI" QLSERIE DISPLAY "Serie/ABI" QLSERIE
DISPLAY "Numero/CAB@11" QLNUMERO DISPLAY "Numero/CAB@11" QLNUMERO
DISPLAY "Rss" QLRSS DISPLAY "Rss" QLRSS
DISPLAY "Note@7" QLNOTE DISPLAY "Note@7" QLNOTE
OUTPUT F_QLDATAVERS QLDV OUTPUT F_QLDATAVERS QLDV
OUTPUT F_QLMESEPAG QLMP OUTPUT F_QLMESEPAG QLMP
OUTPUT F_QLANNOPAG QLAP OUTPUT F_QLANNOPAG QLAP
OUTPUT F_QLLUOVERS QLLV OUTPUT F_QLLUOVERS QLLV
OUTPUT F_QLTIPOVERS QLTV OUTPUT F_QLTIPOVERS QLTV
OUTPUT F_QLCODTRIB QLCT OUTPUT F_QLCODTRIB QLCT
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
FIELD LF_QUAL->QLAP FIELD LF_QUAL->QLAP
FLAGS "R" FLAGS "R"
@ -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
@ -39,22 +38,16 @@ BEGIN
USE LF_QUAP SELECT (CODDITTA=#QPF_CODDITTA) USE LF_QUAP SELECT (CODDITTA=#QPF_CODDITTA)
INPUT CODDITTA QPF_CODDITTA SELECT INPUT CODDITTA QPF_CODDITTA SELECT
INPUT NPROG QPF_NPROG INPUT NPROG QPF_NPROG
DISPLAY "N°" NPROG DISPLAY "N°" NPROG
DISPLAY "Imposta versata" IMPOSTA DISPLAY "Imposta versata" IMPOSTA
DISPLAY "Data versamento" DATAVERS DISPLAY "Data versamento" DATAVERS
DISPLAY "Tipo" TIPOVERS DISPLAY "Tipo" TIPOVERS
DISPLAY "Codice tributo" CODTRIB DISPLAY "Codice tributo" CODTRIB
DISPLAY "Interessi dipendente" INTERDIP DISPLAY "Interessi dipendente" INTERDIP
DISPLAY "Interessi datore di lavoro" INTERDAT DISPLAY "Interessi datore di lavoro" INTERDAT
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
@ -39,22 +38,16 @@ BEGIN
USE LF_QUAS SELECT (CODDITTA=#QSF_CODDITTA) USE LF_QUAS SELECT (CODDITTA=#QSF_CODDITTA)
INPUT CODDITTA QSF_CODDITTA SELECT INPUT CODDITTA QSF_CODDITTA SELECT
INPUT NPROG QSF_NPROG INPUT NPROG QSF_NPROG
DISPLAY "N°" NPROG DISPLAY "N°" NPROG
DISPLAY "Imposta versata" IMPOSTA DISPLAY "Imposta versata" IMPOSTA
DISPLAY "Data versamento" DATAVERS DISPLAY "Data versamento" DATAVERS
DISPLAY "Tipo" TIPOVERS DISPLAY "Tipo" TIPOVERS
DISPLAY "Codice tributo" CODTRIB DISPLAY "Codice tributo" CODTRIB
DISPLAY "Interessi dipendente" INTERDIP DISPLAY "Interessi dipendente" INTERDIP
DISPLAY "Interessi datore di lavoro" INTERDAT DISPLAY "Interessi datore di lavoro" INTERDAT
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