Correzioni immissione

git-svn-id: svn://10.65.10.50/trunk@3177 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1996-07-10 08:41:25 +00:00
parent bb61a87476
commit 899cf84309
46 changed files with 1456 additions and 734 deletions

View File

@ -312,6 +312,7 @@ BEGIN
ITEM "Numero-CAB@11"
ITEM "Progressivo banca"
ITEM "Ritenuta@15"
// ITEM "NUMVERS"
WARNING "Versamento inconsistente"
END

View File

@ -101,9 +101,8 @@ STRING 105 5
BEGIN
PROMPT 16 5 ""
FIELD LF_RVER->SERIE
FLAGS "G"
WARNING "Inserire la serie"
HELP "Inserire la serie"
FLAGS "ZG"
WARNING "Inserire la serie/codice ABI"
GROUP 1 2 4 6
END
@ -119,7 +118,7 @@ BEGIN
GROUP 1 2 3 4 5
END
STRING 72 5
NUMBER 72 5
BEGIN
PROMPT 39 5 ""
FIELD LF_RVER->NUMERO
@ -127,7 +126,7 @@ BEGIN
WARNING "Inserire il codice CAB"
HELP "CODICE CAB LUNGO 5"
MESSAGE COPY,106
FLAGS "HG"
FLAGS "HZG"
GROUP 2 6
END
@ -135,6 +134,7 @@ NUMBER 107 6
BEGIN
PROMPT 2 6 "Progressivo per versamento banca "
FLAGS "DZ"
// FLAGS "Z"
GROUP 2 6
END
@ -153,8 +153,8 @@ END
NUMBER VERF_NUMVERS 6
BEGIN
PROMPT 1 8 "NUMVERS "
FLAGS "H"
PROMPT 80 80 "NUMVERS "
FLAGS "D"
END
BUTTON DLG_OK 9 2

View File

@ -261,20 +261,27 @@ void TSchedaPercipienti::load_pag_sheet(const long numvers)
// Setto il bit alla posizione numpag
if (nvers == numvers)
_selected.set(npag);
const int LARGHEZZA_COL = 15;
d->add(" "); // 0 spazio per la 'X' di selezione
TString16 dep (riga.get(0));
TString dep(riga.get(0));
d->add(dep); // 1 data pagamento
comp = riga.get(1);
d->add(comp.string(".")); // 2 compenso
spese = riga.get(2);
d->add(spese.string(".")); // 3 spese
comp = riga.get(1);
dep = comp.string(".");
dep.right_just(LARGHEZZA_COL);
d->add(dep); // 2 compenso
spese = riga.get(2);
dep = spese.string(".");
dep.right_just(LARGHEZZA_COL);
d->add(dep); // 3 spese
// NB
// se cambia posizione nriga o ritpag nella tokenstring cambia
// anche in pag_select()!
ritpag = riga.get(SS_POS_RITPAG);
d->add(ritpag.string("."));
dep = ritpag.string(".");
dep.right_just(LARGHEZZA_COL);
d->add(dep);
d->add(nriga, SS_POS_NRIGA);
// Metto nell'array-sheet anche NUMVERS
@ -554,7 +561,7 @@ void TSchedaPercipienti::work_tipoluogo(TMask_field& f)
m.show(-4); // serie e numero
}
else
if (tipo == 'B')
if (tipo == 'B')
{
m.show (-6); // ABI e CAB
m.enable(SM_PROGRBANCA); // abilita progressivo vers.banca

View File

@ -123,8 +123,16 @@ bool TVersa_rit::create()
_luogo = _msk->get(F_LUOGO)[0];
_tipo = _msk->get(F_TIPO)[0];
_versato = real(_msk->get(F_VERSATO));
_serie = _msk->get(F_SERIE);
_numero = _msk->get(F_NUMERO);
if (_tipo == DELEGA_BANCARIA)
{
_serie = _msk->get(F_ABI);
_numero = _msk->get(F_CAB);
}
else
{
_serie = _msk->get(F_SERIE);
_numero = _msk->get(F_NUMERO);
}
}
TEdit_field& dummy = (TEdit_field&)_msk->field(F_CODANAGRPERC);
@ -301,8 +309,7 @@ bool TVersa_rit::ha_pagamenti_non_versati(const long codditta,char tipoa,const l
while (rpag.curr() == dep && !rpag.eof())
{
// numvers = rpag.get_long("NUMVERS");
numvers = rpag.get_long("NRIGA");
numvers = rpag.get_long("NUMVERS");
nriga = rpag.get_int("NRIGA");
ritpag = rpag.get_real("RITENUTA");
if (numvers <= 0)

View File

@ -15,4 +15,7 @@
#define F_CODANAGRPERC 112
#define F_TIPOA 113
#define F_ABI 114
#define F_CAB 115
#endif

View File

@ -170,25 +170,41 @@ BEGIN
END
*/
NUMBER F_ABI 5
BEGIN
PROMPT 16 7 ""
FLAGS "Z"
WARNING "Inserire il codice CAB"
GROUP 2 6
END
NUMBER F_CAB 6
BEGIN
PROMPT 39 7 ""
FLAGS "Z"
WARNING "Inserire il codice CAB"
GROUP 2 6
END
STRING F_SERIE 5
BEGIN
PROMPT 16 7 ""
// VALIDATE REQIF_FUNC 2 103 104
CHECKTYPE REQUIRED
FLAGS "G"
WARNING "Inserire il numero di serie/codice CAB"
WARNING "Inserire il numero di serie"
HELP "Inserire la serie"
GROUP 1 2 4 6
GROUP 1 2 4
END
STRING F_NUMERO 11
BEGIN
PROMPT 39 7 ""
VALIDATE REQIF_FUNC 2 103 104
WARNING "Inserire il numero/codice ABI/quietanza"
WARNING "Inserire il numero/quietanza"
HELP "Inserire il numero"
FLAGS "G"
GROUP 1 2 3 4 5 6
GROUP 1 2 3 4 5
END
NUMBER F_VERSATO 15

View File

@ -10,6 +10,7 @@ END
BUTTON F_ATTIVITA 10 2
BEGIN
PROMPT -25 -1 "~Attivita'"
MESSAGE K_TAB,F_ATTIV
END
BUTTON DLG_SAVEREC 10 2
@ -94,6 +95,7 @@ BEGIN
FLAGS "H"
END
/*
STRING F_ATTIV 5
BEGIN
PROMPT 1 4 "Attivita' "
@ -105,6 +107,21 @@ BEGIN
CHECKTYPE REQUIRED
FLAGS "D"
END
*/
STRING F_ATTIV 5
BEGIN
PROMPT 1 4 "Attivita' "
USE LF_ATTIV
INPUT CODDITTA F_CODDITTA SELECT
INPUT CODATT F_ATTIV
DISPLAY "Attivita'" CODATT
DISPLAY "Prevalente" ATTPREV
DISPLAY " @50" DESCR
OUTPUT F_DESCRATT DESCR
CHECKTYPE REQUIRED
FLAGS "D"
END
STRING F_DESCRATT 50
BEGIN

View File

@ -1,8 +1,44 @@
#include "771100.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_SAVEREC 8 2
BEGIN
PROMPT -16 -1 "~Registra"
FLAGS "D"
MESSAGE EXIT,K_SAVE
END
#include <toolbar.h>
BUTTON DLG_NEWREC 8 2
BEGIN
PROMPT -26 -1 "~Nuovo"
MESSAGE EXIT,K_INS
FLAGS "D"
END
BUTTON DLG_DELREC 8 2
BEGIN
PROMPT -36 -1 "~Elimina"
MESSAGE EXIT,K_DEL
FLAGS "D"
END
BUTTON DLG_FINDREC 8 2
BEGIN
PROMPT -46 -1 "Ri~cerca"
MESSAGE EXIT,K_F9
FLAGS "D"
END
BUTTON DLG_CANCEL 8 2
BEGIN
PROMPT -56 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 8 2
BEGIN
PROMPT -66 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE

View File

@ -34,15 +34,15 @@ NUMBER ADF_DIP_CODDIP 6
BEGIN
PROMPT 1 3 "Codice dipendente "
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
FIELD LF_DIPEND->CODIP
FIELD LF_DIPEND->CODDIP
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP ADF_DIP_CODDIP
DISPLAY "Codice dipendente" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT ADF_DIP_CODDIP CODIP
OUTPUT F_DIP_COGNOME COGNOME
OUTPUT F_DIP_NOME NOME
INPUT CODDIP ADF_DIP_CODDIP
DISPLAY "Codice dipendente" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT ADF_DIP_CODDIP CODDIP
OUTPUT F_DIP_COGNOME COGNOME
OUTPUT F_DIP_NOME NOME
FLAGS "R"
CHECKTYPE REQUIRED
KEY 1
@ -58,7 +58,7 @@ BEGIN
PROMPT 1 5 "Codice fiscale "
FLAGS "U"
FIELD LF_DIPEND->CODFI
VALIDATE CF_FUNC F_DIP_CODFI
VALIDATE XTCF_FUNC F_DIPCODFI F_DIP_SESSO F_DIP_DATANA ADF_CODCOMNASC
END
STRING F_DIP_COGNOME 24
@ -83,47 +83,67 @@ END
DATA F_DIP_DATANA
BEGIN
PROMPT 1 8 "Data di nascita "
PROMPT 35 7 "Data di nascita "
FIELD LF_DIPEND->DATANA
END
STRING F_DIP_COMUNENA 20
STRING ADF_CODCOMNASC 4
BEGIN
PROMPT 37 8 "Comune di nascita "
PROMPT 1 8 "Codice Comune di nascita "
USE LF_COMUNI
INPUT COM ADF_CODCOMNASC
#include <comdcod.h>
CHECKYPE NORMAL
OUTPUT ADF_COMNASC DENCOM
OUTPUT F_DIP_PROVNA PROVCOM
FLAGS "HG"
END
STRING ADF_COMNASC 50
BEGIN
PROMPT 1 8 "Comune di nascita "
USE LF_COMUNI KEY 2
INPUT DENCOM ADF_COMNASC
#include <comdcod.h>
OUTPUT ADF_COMNASC DENCOM
OUTPUT F_DIP_PROVNA PROVCOM
FIELD LF_DIPEND->COMUNENA
END
STRING F_DIP_PROVNA 2
BEGIN
PROMPT 1 9 "Provincia di nasc."
PROMPT 1 9 "Provincia di nascita "
FIELD LF_DIPEND->PROVNA
FLAGS "U"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 11 "Residenza"
END
STRING ADF_COMRES 50
BEGIN
PROMPT 1 12 "Comune "
USE LF_COMUNI KEY 2
INPUT DENCOM ADF_COMRES
#include <comdcod.h>
OUTPUT ADF_COMRES DENCOM
OUTPUT F_DIP_PROVRE PROVCOM
FIELD LF_DIPEND->COMRES
END
STRING F_DIP_PROVRE 2
BEGIN
PROMPT 1 13 "Provincia "
FIELD LF_DIPEND->PROVRES
END
STRING F_DIP_INDRE 24
BEGIN
PROMPT 1 12 "Indirizzo "
PROMPT 22 13 "Indirizzo "
FIELD LF_DIPEND->INDRES
END
STRING F_DIP_COMUNERE 20
BEGIN
PROMPT 1 13 "Comune "
FIELD LF_DIPEND->COMRES
END
STRING F_DIP_PROVRE 2
BEGIN
PROMPT 61 13 "Provincia "
FIELD LF_DIPEND->PROVRES
FLAGS "U"
END
NUMBER F_DIP_QUALIFICA 2
BEGIN
PROMPT 1 15 "Qualifica "
@ -142,7 +162,7 @@ BEGIN
ITEM "10|Ministri di culto"
ITEM "11|Eredi"
FLAG "Z"
WARNING "Manca la qualifica"
WARNING "Qualifica errata"
OUTPUT F_DIP_QUALIFICA
END
@ -164,15 +184,16 @@ END
NUMBER ADF_CODDIPDEC 6
BEGIN
PROMPT 1 16 "Codice dipendente deceduto "
USE LF_DIPEND KEY 1 SELECT ((CODIP!=#ADF_DIP_CODDIP) && (CODDITTA=#ADF_CODDITTA))
USE LF_DIPEND KEY 1 SELECT ((CODDITTA==#ADF_CODDITTA)&&(CODDIP!=#ADF_DIP_CODDIP)&&(QUALIFICA!="11"))
FIELD LF_DIPEND->CODDIPDEC
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP ADF_CODDIPDEC
DISPLAY "Codice dipendente" CODIP
INPUT CODDIP ADF_CODDIPDEC
DISPLAY "Codice dipendente" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT ADF_CODDIPDEC CODIP
FLAGS "R"
OUTPUT ADF_CODDIPDEC CODDIP
VALIDATE NOT_EMPTY_CHECK_FIELD
// CHECKTYPE NORMAL
END
LISTBOX ADF_ASSFIS 1 40
@ -193,19 +214,19 @@ BEGIN
PROMPT 1 1 "Eredi"
END
NUMBER F_DIP_CODEREDE0 5
NUMBER F_DIP_CODEREDE0 6
BEGIN
PROMPT 3 2 "Codice "
FIELD LF_DIPEND->CODEREDE0
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE0
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE0 CODIP
INPUT CODDITTA ADF_CODDITTA
INPUT CODDIP F_DIP_CODEREDE0
DISPLAY "Codice" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE0 CODDIP
OUTPUT F_DIP_COGNEREDE0 COGNOME
OUTPUT F_DIP_NOMEREDE0 NOME
OUTPUT F_DIP_NOMEREDE0 NOME
FLAG "DGR"
CHECKTYPE NORMAL
END
@ -222,19 +243,19 @@ BEGIN
FLAG "D"
END
NUMBER F_DIP_CODEREDE1 5
NUMBER F_DIP_CODEREDE1 6
BEGIN
PROMPT 11 3 ""
FIELD LF_DIPEND->CODEREDE1
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE1
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE1 CODIP
OUTPUT F_DIP_COGNEREDE1 COGNOME
OUTPUT F_DIP_NOMEREDE1 NOME
INPUT CODDITTA ADF_CODDITTA
INPUT CODDIP F_DIP_CODEREDE1
DISPLAY "Codice" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE1 CODDIP
OUTPUT F_DIP_COGNEREDE1 COGNOME
OUTPUT F_DIP_NOMEREDE1 NOME
CHECKTYPE NORMAL
FLAG "DR"
END
@ -251,19 +272,19 @@ BEGIN
FLAG "D"
END
NUMBER F_DIP_CODEREDE2 5
NUMBER F_DIP_CODEREDE2 6
BEGIN
PROMPT 11 4 ""
FIELD LF_DIPEND->CODEREDE2
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE2
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE2 CODIP
OUTPUT F_DIP_COGNEREDE2 COGNOME
OUTPUT F_DIP_NOMEREDE2 NOME
INPUT CODDITTA ADF_CODDITTA
INPUT CODDIP F_DIP_CODEREDE2
DISPLAY "Codice" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE2 CODDIP
OUTPUT F_DIP_COGNEREDE2 COGNOME
OUTPUT F_DIP_NOMEREDE2 NOME
CHECKTYPE NORMAL
FLAG "DR"
END
@ -280,19 +301,19 @@ BEGIN
FLAG "D"
END
NUMBER F_DIP_CODEREDE3 5
NUMBER F_DIP_CODEREDE3 6
BEGIN
PROMPT 11 5 ""
FIELD LF_DIPEND->CODEREDE3
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE3
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE3 CODIP
OUTPUT F_DIP_COGNEREDE3 COGNOME
OUTPUT F_DIP_NOMEREDE3 NOME
INPUT CODDITTA ADF_CODDITTA
INPUT CODDIP F_DIP_CODEREDE3
DISPLAY "Codice" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE3 CODDIP
OUTPUT F_DIP_COGNEREDE3 COGNOME
OUTPUT F_DIP_NOMEREDE3 NOME
CHECKTYPE NORMAL
FLAG "DR"
END
@ -309,19 +330,19 @@ BEGIN
FLAG "D"
END
NUMBER F_DIP_CODEREDE4 5
NUMBER F_DIP_CODEREDE4 6
BEGIN
PROMPT 11 6 ""
FIELD LF_DIPEND->CODEREDE4
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE4
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE4 CODIP
OUTPUT F_DIP_COGNEREDE4 COGNOME
OUTPUT F_DIP_NOMEREDE4 NOME
INPUT CODDITTA ADF_CODDITTA
INPUT CODDIP F_DIP_CODEREDE4
DISPLAY "Codice" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE4 CODDIP
OUTPUT F_DIP_COGNEREDE4 COGNOME
OUTPUT F_DIP_NOMEREDE4 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
@ -338,19 +359,19 @@ BEGIN
FLAG "D"
END
NUMBER F_DIP_CODEREDE5 5
NUMBER F_DIP_CODEREDE5 6
BEGIN
PROMPT 11 7 ""
FIELD LF_DIPEND->CODEREDE5
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE5
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE5 CODIP
OUTPUT F_DIP_COGNEREDE5 COGNOME
OUTPUT F_DIP_NOMEREDE5 NOME
INPUT CODDITTA ADF_CODDITTA
INPUT CODDIP F_DIP_CODEREDE5
DISPLAY "Codice" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE5 CODDIP
OUTPUT F_DIP_COGNEREDE5 COGNOME
OUTPUT F_DIP_NOMEREDE5 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
@ -367,19 +388,19 @@ BEGIN
FLAG "D"
END
NUMBER F_DIP_CODEREDE6 5
NUMBER F_DIP_CODEREDE6 6
BEGIN
PROMPT 11 8 ""
FIELD LF_DIPEND->CODEREDE6
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE6
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE6 CODIP
OUTPUT F_DIP_COGNEREDE6 COGNOME
OUTPUT F_DIP_NOMEREDE6 NOME
INPUT CODDITTA ADF_CODDITTA
INPUT CODDIP F_DIP_CODEREDE6
DISPLAY "Codice" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE6 CODDIP
OUTPUT F_DIP_COGNEREDE6 COGNOME
OUTPUT F_DIP_NOMEREDE6 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
@ -396,19 +417,19 @@ BEGIN
FLAG "D"
END
NUMBER F_DIP_CODEREDE7 5
NUMBER F_DIP_CODEREDE7 6
BEGIN
PROMPT 11 9 ""
FIELD LF_DIPEND->CODEREDE7
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE7
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE7 CODIP
OUTPUT F_DIP_COGNEREDE7 COGNOME
OUTPUT F_DIP_NOMEREDE7 NOME
INPUT CODDITTA ADF_CODDITTA
INPUT CODDIP F_DIP_CODEREDE7
DISPLAY "Codice" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE7 CODDIP
OUTPUT F_DIP_COGNEREDE7 COGNOME
OUTPUT F_DIP_NOMEREDE7 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
@ -425,19 +446,19 @@ BEGIN
FLAG "D"
END
NUMBER F_DIP_CODEREDE8 5
NUMBER F_DIP_CODEREDE8 6
BEGIN
PROMPT 11 10 ""
FIELD LF_DIPEND->CODEREDE8
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE8
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE8 CODIP
OUTPUT F_DIP_COGNEREDE8 COGNOME
OUTPUT F_DIP_NOMEREDE8 NOME
INPUT CODDITTA ADF_CODDITTA
INPUT CODDIP F_DIP_CODEREDE8
DISPLAY "Codice" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE8 CODDIP
OUTPUT F_DIP_COGNEREDE8 COGNOME
OUTPUT F_DIP_NOMEREDE8 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
@ -454,19 +475,19 @@ BEGIN
FLAG "D"
END
NUMBER F_DIP_CODEREDE9 5
NUMBER F_DIP_CODEREDE9 6
BEGIN
PROMPT 11 11 ""
FIELD LF_DIPEND->CODEREDE9
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE9
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE9 CODIP
OUTPUT F_DIP_COGNEREDE9 COGNOME
OUTPUT F_DIP_NOMEREDE9 NOME
INPUT CODDITTA ADF_CODDITTA
INPUT CODDIP F_DIP_CODEREDE9
DISPLAY "Codice" CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE9 CODDIP
OUTPUT F_DIP_COGNEREDE9 COGNOME
OUTPUT F_DIP_NOMEREDE9 NOME
FLAG "DR"
CHECKTYPE NORMAL
END

View File

@ -15,12 +15,10 @@
#include <nditte.h>
#include <defmask.h>
#include "77lib.h"
#include "dipend.h"
#include "quadroa.h"
#include "quadroa3.h"
#include "soctrasf.h"
#include "771200.h"
#include "774200.h"
@ -65,9 +63,8 @@ class TQuadroA : public TRelation_application
TRiporti _rip;
int _file;
bool _soc_trasf;
TString _cognome,_nome;
long _codditta,_codip;
TString _cognome,_nome; // dati soc.trasf.
private:
// Handler relativi ai quadri A - A1 - A2 - A3
static bool nprog_handler (TMask_field& f, KEY key);
@ -83,14 +80,19 @@ class TQuadroA : public TRelation_application
static bool QA_chech_ritdatlav (TMask_field& f, KEY key);
static bool QA_check_ritdovute (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);
// Handler relativi alla manutenzione quadro A3
static bool QA3_codip_handler (TMask_field& f, KEY key);
static bool QA3_base_occupazionale(TMask_field& f, KEY key);
static bool QA3_nprog (TMask_field& f, KEY key);
void AA3SettaCognomeNome(TMask& m);
protected:
TString _sCognome, _sNome; // dati dipendente
int _iNprog;
long _codditta,_codip;
virtual bool user_create();
virtual bool user_destroy();
virtual int rewrite(const TMask& m);
@ -105,8 +107,8 @@ class TQuadroA : public TRelation_application
virtual void init_insert_mode(TMask& m);
virtual void on_config_change();
TMask* load_mask(int n);
int anno_dic() const { return _anno_dic; }
bool QuadroA() const { return _quadro == "A"; }
int anno_dic() const { return _anno_dic; }
bool QuadroA() const { return _quadro == "A"; }
bool QuadroA1() const { return _quadro == "A1"; }
bool QuadroA2() const { return _quadro == "A2"; }
bool QuadroA3() const { return _quadro == "A3"; }
@ -202,18 +204,20 @@ TMask* TQuadroA::load_mask(int n)
m->set_handler(QAF_CODDITTA, codditta_hnd);
if (!QuadroA3())
{
m->set_handler(QAF_NPROG, nprog_handler);
m->set_handler(F_CODIP, codanagr_handler);
}
m->set_handler(QAF_NPROG, nprog_handler);
m->set_handler(F_CODANAGDIP, codanagr_handler);
m->set_handler(F_CODANAGDIPQA, codanagr_handler);
}
else
{
m->set_handler(QAF_NPROG, QA3_nprog);
m->set_handler(F_CODIP, QA3_codip_handler);
m->set_handler(F_CODANAGDIP, QA3_codip_handler);
m->set_handler(F_BASEOCCUPA, QA3_base_occupazionale);
}
}
break;
case 1:
m->disable(DLG_FINDREC);
if (m)
{
if (QuadroA2())
@ -230,11 +234,9 @@ TMask* TQuadroA::load_mask(int n)
m->set_handler(F_RETCON56, QA_A2_check_58);
// Se 27=0 => 25 deve = 0
m->set_handler(F_IACOBBCD25, QA_check_2527);
// Calcola il totale imponibile (c.27)
m->set_handler(F_AMMLORDO24, QA_tot_impon_hnd);
m->set_handler(QAF_SVNSOGRIT, QA_tot_impon_hnd);
m->set_handler(F_DETCC, QA_tot_detraz_hnd);
m->set_handler(F_DETFC, QA_tot_detraz_hnd);
m->set_handler(F_DETAF, QA_tot_detraz_hnd);
@ -244,14 +246,21 @@ TMask* TQuadroA::load_mask(int n)
m->set_handler(F_AMRIODL38, QA_chech_ritdatlav);
// Controlla che 42 = 39 + 40 - 41
m->set_handler(F_AMMRITDOV, QA_check_ritdovute);
// Calcolo: 30 = 23+27+28+29
m->set_handler(F_COMPNETTI, QA_calcolo30);
m->set_handler(F_TOTIMP26, QA_calcolo30);
m->set_handler(F_AIEREP23, QA_calcolo30);
m->set_handler(F_CCTAMMCONT, QA_calcolo30);
}
}
break;
default:
break;
}
m->disable(DLG_FINDREC);
}
if (QuadroA3())
set_search_field(F_CODIPQUADRO);
else
set_search_field(QAF_NPROG);
return _msk[n] = m;
}
@ -266,10 +275,8 @@ bool TQuadroA::is_societa_trasformata(TMask& m)
{
_cognome = soc.get(SOC_DENOMIN);
_nome = soc.get(SOC_NOME);
return TRUE;
}
return FALSE;
}
@ -284,7 +291,7 @@ bool TQuadroA::setta_nprog(TMask_field& f)
quadro.zero();
quadro.put("CODDITTA", codditta);
quadro.put("CODIP", coddip);
quadro.put("CODDIP", coddip);
TRectype rec(quadro.curr());
@ -313,7 +320,7 @@ bool TQuadroA::codditta_hnd(TMask_field& f, KEY k)
{
if (k == K_TAB && !f.mask().is_running())
{
TString16 codditta; codditta << get_firm_770();
TString16 codditta; codditta << app()._codditta;
if (codditta != "0")
{
f.set(codditta);
@ -325,15 +332,59 @@ bool TQuadroA::codditta_hnd(TMask_field& f, KEY k)
bool TQuadroA::codanagr_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
if (!f.mask().is_running()) return TRUE;
/* if (k == K_ENTER)
{
TString16 dummy(f.get());
if (dummy.not_empty())
setta_nprog(f);
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)
{
const long coddip = atol(f.get());
if (coddip != 0L)
{
const long codditta = get_firm_770();
if (!esiste_dipendente(codditta, coddip))
return f.warning_box("Dipendente inesistente");
else
setta_nprog(f);
}
}
return TRUE;
}
void TQuadroA::AA3SettaCognomeNome(TMask& m)
{
const int iDlgCognome = QAF_COGNOME;
const int iDlgNome = QAF_NOME;
const int iDlgNProg = QAF_NPROG;
const int iProg = m.get_int(iDlgNProg);
TString sCognome(m.get(iDlgCognome));
TString sNome;
if (app()._codip != 0L)
{
TLocalisamfile dip (LF_DIPEND);
dip.zero();
dip.put(DIP_CODDITTA, app()._codditta);
dip.put(DIP_CODIP, app()._codip);
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);
}
}
}
// Passa al modo inserimento/modifica.
bool TQuadroA::nprog_handler(TMask_field& f, KEY key)
{
@ -342,16 +393,21 @@ bool TQuadroA::nprog_handler(TMask_field& f, KEY key)
if (key == K_TAB)
{
const int nprog = atoi(f.get());
if (nprog==0) return TRUE;
if (nprog==0)
return TRUE;
const long coddip = f.mask().get_long(F_CODIP);
const long codditta = get_firm_770();
if ( (is_erede(codditta,coddip)) && nprog > 1)
return error_box("Il dipendente selezionato e' un erede: non e'\n possibile indicare piu' di un rigo sul quadro A");
f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure
else
{
app()._codip = coddip;
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
// inserimento (se trova che non esiste)
}
}
return TRUE;
}
@ -370,12 +426,23 @@ bool TQuadroA::QA3_nprog(TMask_field& f, KEY key)
bool TQuadroA::QA3_codip_handler(TMask_field& f, KEY key)
{
if (!f.mask().is_running()) return TRUE;
if (key == K_ENTER)
{
const long coddip = atol(f.get());
if (coddip==0) return TRUE;
const long codditta = get_firm_770();
if (!esiste_dipendente(codditta, coddip))
return f.warning_box("Dipendente inesistente");
}
if (key == K_TAB)
{
const long coddip = atol(f.get());
if (coddip==0) return TRUE;
const long codditta = get_firm_770();
if (!esiste_dipendente(codditta, coddip))
return f.warning_box("Dipendente inesistente");
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)
}
@ -383,18 +450,14 @@ bool TQuadroA::QA3_codip_handler(TMask_field& f, KEY key)
}
// Se CF dat.lav.prec. e' vuoto => mette a ZERO il 19 e lo disabilita
// 26.6.96 azzera soltanto
bool TQuadroA::QA_cfdlprec_hnd(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TString tmp(f.get());
if (tmp.empty())
{
f.mask().set(F_CAUSA, 0L);
f.mask().disable(F_CAUSA);
}
else
f.mask().enable(F_CAUSA);
}
return TRUE;
}
@ -450,22 +513,31 @@ bool TQuadroA::QA_A2_check_58(TMask_field& f, KEY k)
if (k == K_TAB || k == K_ENTER)
{
TMask& m = f.mask();
TString16 cod(f.get());
TString16 cod(f.get());
cod.upper();
const long codditta = f.mask().get_long(QAF_CODDITTA);
const long coddip = f.mask().get_long(F_CODIP);
if (cod == "B")
{
if (!QA_cerca_codA(codditta, coddip, app()._quadro))
return error_box("Non esiste nessun record con 58=A per questo dipendente");
// Nasconde prompt 770 mostra prompt 730
m.hide(-6);
m.show(-7);
return error_box(app().QuadroA2() ?
"Non esiste nessun record con 9=A per questo dipendente" :
"Non esiste nessun record con 58=A per questo dipendente");
else
{
// Nasconde prompt 770 mostra prompt 730
m.disable(-G_ALL);
m.hide(-G_770);
// m.reset(-G_ALL);
m.show(-G_730);
}
}
// Nasconde prompt 730 mostra prompt 770
else
{
m.hide(-7);
m.show(-6);
m.hide(-G_730);
m.show(-G_770);
m.enable(-G_ALL);
}
}
return TRUE;
@ -478,9 +550,7 @@ bool TQuadroA::QA_comp_netti_hnd (TMask_field& f, KEY k)
real denaro = f.mask().get_real(F_DENARO);
real natura = f.mask().get_real(F_NATURA);
real cobbdip = f.mask().get_real(F_COBBDIP21);
real compnetti = denaro + natura - cobbdip;
f.mask().set(F_COMPNETTI, compnetti);
f.send_key(K_TAB,F_COMPNETTI);
}
@ -510,22 +580,36 @@ bool TQuadroA::QA_tot_detraz_hnd (TMask_field& f, KEY k)
{
if (k == K_TAB)
{
bool ForzaRicalcolo = FALSE;
real totdet36 = f.mask().get_real(F_TOTDET36);
ForzaRicalcolo = f.focusdirty();
TMask& m = f.mask();
real totdet36 = m.get_real(F_TOTDET36);
real detcc = m.get_real(F_DETCC);
real detfc = m.get_real(F_DETFC);
real detaf = m.get_real(F_DETAF);
real detld = m.get_real(F_DETLD);
real deto = m.get_real(F_DETO);
totdet36 = detcc + detfc + detaf + detld + deto;
m.set(F_TOTDET36, totdet36);
// disabilita il campo 37 se uno almeno da 32 a 36 e' compilato
if (totdet36 != ZERO)
m.disable(F_TOTDET36);
else
m.enable(F_TOTDET36);
}
return TRUE;
}
if (ForzaRicalcolo)
{
real detcc = f.mask().get_real(F_DETCC);
real detfc = f.mask().get_real(F_DETFC);
real detaf = f.mask().get_real(F_DETAF);
real detld = f.mask().get_real(F_DETLD);
real deto = f.mask().get_real(F_DETO);
totdet36 = detcc + detfc + detaf + detld + deto;
f.mask().set(F_TOTDET36, totdet36);
}
bool TQuadroA::QA_calcolo30(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TMask& m = f.mask();
real c30 = m.get_real(F_TOTIMP29);
real c23 = m.get_real(F_COMPNETTI);
real c27 = m.get_real(F_TOTIMP26);
real c28 = m.get_real(F_AIEREP23);
real c29 = m.get_real(F_CCTAMMCONT);
c30 = c23 + c27 + c28 + c29;
m.set(F_TOTIMP29, c30);
}
return TRUE;
}
@ -535,7 +619,7 @@ bool TQuadroA::QA3_base_occupazionale(TMask_field& f , KEY k)
if (k == K_SPACE)
{
TString appname(30);
appname.format("773mod -1 771200i 37 \"%s\" 0", "Base occupati");
appname.format("773mod -1 771200i 37 \"%s\" 0", "Base occupazionale");
TExternal_app a(appname);
a.run();
}
@ -593,7 +677,7 @@ void TQuadroA::registra_record2_A3(const TMask& m)
int TQuadroA::rewrite(const TMask& m)
{
if (_tipoq == '3' && _soc_trasf)
if (QuadroA3() && _soc_trasf)
registra_record2_A3(m);
m.autosave(_rel);
@ -605,7 +689,7 @@ int TQuadroA::rewrite(const TMask& m)
int TQuadroA::write(const TMask& m)
{
if (_tipoq == '3' && _soc_trasf)
if (QuadroA3() && _soc_trasf)
registra_record2_A3(m);
m.autosave(_rel);
@ -630,7 +714,7 @@ void TQuadroA::cancella_record2_A3()
bool TQuadroA::remove()
{
if (_tipoq == '3' && _soc_trasf)
if (QuadroA3() && _soc_trasf)
cancella_record2_A3();
_registra = TRUE;
return TRelation_application::remove();
@ -663,6 +747,8 @@ bool TQuadroA::user_create()
_qd = new TLocalisamfile(_file);
_rel = new TRelation(_file);
_codditta = get_firm_770();
set_search_field(F_CODANAGDIP);
_registra = FALSE;
@ -789,35 +875,33 @@ void TQuadroA::init_query_mode(TMask& m)
{
m.set(QAF_ANNODIC, _anno_dic);
if (_tipoq == '3')
if (QuadroA3())
{
_soc_trasf = is_societa_trasformata(m);
if (_soc_trasf)
carica_record2_A3(m);
}
if (_tipoq != '3')
else
{
// forza il ricalcolo dell'ultimo numero disponibile
TString16 dummy(m.get(QAF_NPROG));
if (dummy.not_empty())
setta_nprog(m.field(QAF_NPROG));
}
m.send_key(K_SHIFT+K_CTRL+'h', -1); // nasconde (hide) group 1 - Scelta ANAGR
m.send_key(K_SHIFT+K_CTRL+'s', -2); // abilita (show) group 2 - Ricerca su DATI PERC
}
m.send_key(K_SHIFT+K_CTRL+'h', -1); // hide group 1 -nasconde DIPEND.
m.send_key(K_SHIFT+K_CTRL+'s', -2); // show group 2 -Ricerca su QUADRO A
}
void TQuadroA::init_query_insert_mode(TMask& m)
{
m.set(QAF_ANNODIC, _anno_dic);
m.send_key(K_SHIFT+K_CTRL+'h', -2); // group 3 Nasconde ricerca su PERC
m.send_key(K_SHIFT+K_CTRL+'s', -1); // group 1 Ricerca su ANAGR
m.send_key(K_SHIFT+K_CTRL+'h', -2); // group 2 Nasconde ricerca su QUADROA
m.send_key(K_SHIFT+K_CTRL+'s', -1); // group 1 Ricerca su ANAGR.DIPENDENTI
}
void TQuadroA::init_modify_mode(TMask& m)
{
if (_tipoq == '3')
if (QuadroA3())
{
_codditta = m.get_long(QAF_CODDITTA);
_codip = m.get_long(F_CODIP);
@ -835,7 +919,7 @@ void TQuadroA::init_modify_mode(TMask& m)
void TQuadroA::init_insert_mode(TMask& m)
{
if (_tipoq == '3')
if (QuadroA3())
{
_codditta = m.get_long(QAF_CODDITTA);
_codip = m.get_long(F_CODIP);

View File

@ -177,3 +177,9 @@
#define QA2F_730NLIQ 419
#define F_CODANAGDIPQA 420
#define G_ALL 6
#define G_730 7
#define G_770 9

View File

@ -3,6 +3,9 @@ TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
#define G_DIPEND 1
#define G_QUADROA 2
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
GROUPBOX DLG_NULL 78 3
@ -43,7 +46,7 @@ NUMBER F_CODIP 6
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAA->CODIP
FIELD LF_QUAA->CODDIP
CHECKTYPE REQUIRED
KEY 1
END
@ -53,17 +56,38 @@ BEGIN
PROMPT 1 8 "@bCodice "
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Codice " CODIP
INPUT CODDIP F_CODANAGDIP
DISPLAY "Codice " CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_CODANAGDIP CODIP
OUTPUT F_CODANAGDIP CODDIP
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti"
MESSAGE COPY, F_CODIP
MESSAGE COPY, F_CODIP
FLAGS "H"
GROUP G_DIPEND
END
NUMBER F_CODANAGDIPQA 6
BEGIN
PROMPT 1 8 "@bCodice "
USE LF_QUAA KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
JOIN LF_DIPEND KEY 1 INTO CODDITTA=CODDITTA CODDIP=CODDIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODDIP F_CODANAGDIPQA
DISPLAY "Codice " CODDIP
DISPLAY "Cognome@24" LF_DIPEND->COGNOME
DISPLAY "Nome@20" LF_DIPEND->NOME
DISPLAY "N°@4" NPROG
OUTPUT F_CODANAGDIPQA CODDIP
OUTPUT QAF_COGNOME LF_DIPEND->COGNOME
OUTPUT QAF_NOME LF_DIPEND->NOME
MESSAGE COPY, F_CODIP
GROUP G_QUADROA
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 8 ""
@ -81,15 +105,16 @@ BEGIN
PROMPT 1 10 "@bNumero "
CHECKTYPE REQUIRED
USE LF_QUAA KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
JOIN LF_DIPEND KEY 1 INTO CODIP=CODIP
JOIN LF_DIPEND KEY 1 INTO CODDITTA=CODDITTA CODDIP=CODDIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
INPUT CODDIP F_CODIP
INPUT NPROG QAF_NPROG
DISPLAY "Codice@10" CODIP
DISPLAY "Codice@10" CODDIP
DISPLAY "Cognome@24" LF_DIPEND->COGNOME
DISPLAY "Nome@20" LF_DIPEND->NOME
DISPLAY "N°@4" NPROG
OUTPUT F_CODANAGDIP CODIP
OUTPUT F_CODANAGDIP CODDIP
OUTPUT F_CODANAGDIPQA CODDIP
OUTPUT QAF_NPROG NPROG
FIELD LF_QUAA->NPROG
KEY 1

View File

@ -15,22 +15,24 @@ BEGIN
FLAGS "H"
FIELD LF_QUAA->CODDITTA
KEY 1
GROUP 8
MESSAGE COPY,1@
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 17 1 ""
USE LF_DIPEND KEY 1
FIELD LF_QUAA->CODIP
FIELD LF_QUAA->CODDIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
INPUT CODDIP F_CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
CHECKTYPE REQUIRED
FLAGS "DG"
GROUP 8
MESSAGE COPY,2@
KEY 1
END
@ -39,6 +41,7 @@ STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
GROUP 8
MESSAGE COPY,3@
END
@ -46,6 +49,7 @@ STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
GROUP 8
MESSAGE COPY,4@
END
@ -54,7 +58,8 @@ BEGIN
PROMPT 72 1 ""
FIELD LF_QUAA->NPROG
FLAGS "DG"
KEY 1
KEY 1
GROUP 8
MESSAGE COPY,5@
END
@ -72,6 +77,7 @@ BEGIN
ITEM "C|Area produzione"
ITEM "D|Aree non definite"
FIELD LF_QUAA->AREAATT
GROUP G_ALL
END
STRING QAF_TIPOATT 1
@ -85,18 +91,21 @@ BEGIN
ITEM "C|Formazione lavoro"
OUTPUT QAF_TIPOATT
FIELD LF_QUAA->TIPO
GROUP G_ALL
END
NUMBER F_NUMGIORNI 3
BEGIN
PROMPT 55 4 "15 numero giorni "
FIELD LF_QUAA->NUMGIO
GROUP G_ALL
END
DATE F_DATAFR
BEGIN
PROMPT 2 5 "16 data fine rapporto "
FIELD LF_QUAA->DATAFR
GROUP G_ALL
END
NUMBER QAF_GIODET 3
@ -105,6 +114,7 @@ BEGIN
FIELD LF_QUAA->NUMGIODET
NUM_EXPR {(#THIS>=0)&&(#THIS<=366)}
WARNING "I giorni detrazione per lav.dip. devono essere compresi tra 0 e 366"
GROUP G_ALL
END
STRING F_CODFISDL 16
@ -113,6 +123,7 @@ BEGIN
FIELD LF_QUAA->CFDLPREC
FLAGS "U"
VALIDATE CF_FUNC F_CODFISDL
GROUP G_ALL
END
NUMBER F_CAUSA 1
@ -127,7 +138,10 @@ BEGIN
ITEM "3|Conferimento o cessione a titolo oneroso"
ITEM "4|Esercizio della facolta' prevista da art.23, comma 7, D.P.R. 600/73"
ITEM "5|Altro"
ITEM "6|Forme pensionistiche complementari (I num.d'ordine)"
ITEM "7|Forme pensionistiche complementari (II num.d'ordine)"
OUTPUT F_CAUSA
GROUP G_ALL
END
GROUPBOX DLG_NULL 78 3
@ -140,6 +154,7 @@ BEGIN
PROMPT 2 9 "20 in denaro "
FIELD LF_QUAA->DENARO
PICTURE "."
GROUP G_ALL
END
NUMBER F_NATURA 15
@ -147,6 +162,7 @@ BEGIN
PROMPT 45 9 "21 in natura "
FIELD LF_QUAA->NATURA
PICTURE "."
GROUP G_ALL
END
NUMBER F_COBBDIP21 15
@ -155,6 +171,7 @@ BEGIN
HELP "Contributi obbligatori a carico del dipendente"
FIELD LF_QUAA->COBBDIP
PICTURE "."
GROUP G_ALL
END
NUMBER F_COMPNETTI 15
@ -162,9 +179,9 @@ BEGIN
PROMPT 45 11 "23 compensi netti"
FIELD LF_QUAA->COMPNETTI
PICTURE "."
GROUP G_ALL
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 13 "@bIndennita' e assegni ex Art.48, C.4 e 5, T.U.I.R."
@ -175,6 +192,7 @@ BEGIN
PROMPT 2 14 "24 ammontare lordo "
FIELD LF_QUAA->AMMLORDO
PICTURE "."
GROUP G_ALL
END
NUMBER F_IACOBBCD25 15
@ -183,6 +201,7 @@ BEGIN
FIELD LF_QUAA->IACOBBCD
PICTURE "."
HELP "Contributi obbligatori a carico del dipendente"
GROUP G_ALL
END
NUMBER QAF_SVNSOGRIT 15
@ -190,6 +209,7 @@ BEGIN
PROMPT 2 15 "26 som.v.non sog.rit."
FIELD LF_QUAA->NORIT
PICTURE "."
GROUP G_ALL
END
NUMBER F_TOTIMP26 15
@ -197,6 +217,7 @@ BEGIN
PROMPT 39 15 "27 totale imponibile "
FIELD LF_QUAA->TOTIMP
PICTURE "."
GROUP G_ALL
END
ENDPAGE
@ -214,7 +235,7 @@ BEGIN
GROUP 1
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
@ -248,20 +269,23 @@ BEGIN
FIELD LF_QUAA->AIENTIPREV
PICTURE "."
HELP "Assegni e indennita' erogati da enti previdenziali"
GROUP G_ALL
END
NUMBER F_CCTAMMCONT 15
BEGIN
PROMPT 2 4 "29 ammontare compensi corrisposti da terzi "
FIELD LF_QUAA->CCTAMMCONT
PICTURE "."
PICTURE "."
GROUP G_ALL
END
NUMBER F_TOTIMP29 15
BEGIN
PROMPT 2 5 "30 totale imponibile "
FIELD LF_QUAA->TOTIMP2
PICTURE "."
PICTURE "."
GROUP G_ALL
END
NUMBER F_ICTOTIMP30 15
@ -270,6 +294,7 @@ BEGIN
FIELD LF_QUAA->ICTOTIMP
PICTURE "."
HELP "Imposta corrispondente al totale imponibile"
GROUP G_ALL
END
NUMBER F_DETCC 15
@ -278,6 +303,7 @@ BEGIN
FIELD LF_QUAA->DETCC
PICTURE "."
HELP "Detrazione per coniuge a carico"
GROUP G_ALL
END
NUMBER F_DETFC 15
@ -286,6 +312,7 @@ BEGIN
FIELD LF_QUAA->DETFC
PICTURE "."
HELP "Detrazione per figli a carico"
GROUP G_ALL
END
NUMBER F_DETAF 15
@ -294,6 +321,7 @@ BEGIN
FIELD LF_QUAA->DETAF
PICTURE "."
HELP "Detrazione per altri famigliari a carico"
GROUP G_ALL
END
NUMBER F_DETLD 15
@ -302,6 +330,7 @@ BEGIN
FIELD LF_QUAA->DETLD
PICTURE "."
HELP "Detrazione per lavoro dipendente"
GROUP G_ALL
END
NUMBER F_DETO 15
@ -310,6 +339,7 @@ BEGIN
FIELD LF_QUAA->DETO
PICTURE "."
HELP "Detrazione per oneri"
GROUP G_ALL
END
NUMBER F_TOTDET36 15
@ -317,22 +347,24 @@ BEGIN
PROMPT 41 9 "37 totale detrazione "
FIELD LF_QUAA->TOTDET
PICTURE "."
GROUP G_ALL
END
NUMBER QAF_INCDETFC 15
BEGIN
PROMPT 2 10 "38 inc.detr.figli a ca."
FIELD LF_QUAA->INCDETFC
PICTURE "."
PICTURE "."
GROUP G_ALL
END
NUMBER F_AMRIOT37 15
BEGIN
PROMPT 2 11 "39 ammontare delle ritenute operate da terzi"
FIELD LF_QUAA->AMRIOT
PICTURE "."
HELP "Ammontare delle ritenute operate da terzi"
GROUP G_ALL
END
NUMBER F_AMRIODL38 15
@ -341,6 +373,7 @@ BEGIN
FIELD LF_QUAA->AMRIODL
PICTURE "."
HELP "Ammontare delle ritenute operate dal datore di lavoro"
GROUP G_ALL
END
NUMBER F_ECCRITRIMB 15
@ -349,6 +382,7 @@ BEGIN
FIELD LF_QUAA->ECCRITRIMB
PICTURE "."
HELP "Eccedenza delle ritenute da rimborsare"
GROUP G_ALL
END
NUMBER F_AMMRITDOV 15
@ -357,6 +391,7 @@ BEGIN
FIELD LF_QUAA->AMMRITDOV
PICTURE "."
HELP "Ammontare delle ritenute dovute"
GROUP G_ALL
END
NUMBER F_ERSPSAN41 15
@ -365,6 +400,7 @@ BEGIN
FIELD LF_QUAA->ERSPSAN
PICTURE "."
HELP "Erogazioni per spese sanitarie, anche in forma assicurativa"
GROUP G_ALL
END
NUMBER F_PRASSVI42 15
@ -373,6 +409,7 @@ BEGIN
FIELD LF_QUAA->PRASSVI
PICTURE "."
HELP "Premi di assicurazione vita e infortuni"
GROUP G_ALL
END
NUMBER F_CONPRECO43 15
@ -381,6 +418,7 @@ BEGIN
FIELD LF_QUAA->CONPRECO
PICTURE "."
HELP "Contributi per previdenza complementare"
GROUP G_ALL
END
ENDPAGE
@ -398,7 +436,7 @@ BEGIN
GROUP 1
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
@ -437,6 +475,7 @@ BEGIN
FIELD LF_QUAA->COBBDIP2
PICTURE "."
HELP "Contributi obbligatori a carico del dipendente"
GROUP G_ALL
END
NUMBER F_AMMIMP45 15
@ -445,27 +484,31 @@ BEGIN
FIELD LF_QUAA->AMMIMP
PICTURE "."
HELP "Ammontare imponibile"
GROUP G_ALL
END
NUMBER F_DETIMPOS46 15
BEGIN
PROMPT 2 5 "48 detrazioni d'imposta"
FIELD LF_QUAA->DETIMPOS
PICTURE "."
PICTURE "."
GROUP G_ALL
END
NUMBER F_RITESEG47 15
BEGIN
PROMPT 41 5 "49 ritenuta eseguita "
FIELD LF_QUAA->RITESEG
PICTURE "."
PICTURE "."
GROUP G_ALL
END
NUMBER F_SVNASSRI48 15
BEGIN
PROMPT 2 6 "50 altre somme e valori non ass.a ritenuta "
FIELD LF_QUAA->SVNASSRI
PICTURE "."
PICTURE "."
GROUP G_ALL
END
NUMBER F_AIFCSSN49 15
@ -474,6 +517,7 @@ BEGIN
FIELD LF_QUAA->AIFCSSN
PICTURE "."
HELP "Ammontare imponibile ai fini del C.S.S.N."
GROUP G_ALL
END
TEXT DLG_NULL
@ -500,6 +544,7 @@ BEGIN
ITEM "E|Retribuzione insufficiente"
ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici"
OUTPUT F_CONEFF50
GROUP G_ALL
END
GROUPBOX DLG_NULL 78 3
@ -512,6 +557,7 @@ BEGIN
PROMPT 2 14 "53 imposta vers. "
FIELD LF_QUAA->IMPVERS
PICTURE "."
GROUP G_ALL
END
NUMBER F_ISOPTAS52 15
@ -519,7 +565,8 @@ BEGIN
PROMPT 37 14 "54 interessi "
FIELD LF_QUAA->INTERE
PICTURE "."
END
GROUP G_ALL
END
GROUPBOX DLG_NULL 78 3
BEGIN
@ -531,6 +578,7 @@ BEGIN
PROMPT 2 17 "55 contr. versato"
FIELD LF_QUAA->CSSN95CV
PICTURE "."
GROUP G_ALL
END
NUMBER F_ISOPTAS54 15
@ -538,6 +586,7 @@ BEGIN
PROMPT 37 17 "56 interessi "
FIELD LF_QUAA->INTERE2
PICTURE "."
GROUP G_ALL
END
ENDPAGE
@ -555,7 +604,7 @@ BEGIN
GROUP 1
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
@ -590,9 +639,8 @@ END
STRING F_CNEFF55 1
BEGIN
PROMPT 2 4 "57 conguagli n/eff.assist.95 "
PROMPT 2 4 "57 conguagli n/eff. "
FIELD LF_QUAA->CNEFF
HELP "Conguagli non effettuati relativi all'assistenza 1995"
SHEET "Codice|Descrizione@85"
INPUT F_CNEFF55
ITEM " |Niente"
@ -604,23 +652,24 @@ BEGIN
ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici"
ITEM "G|Rimborso non effettuato o rimborso effettuato parzialmente"
OUTPUT F_CNEFF55
GROUP G_ALL
END
STRING F_RETCON56 1
BEGIN
PROMPT 37 4 "58 rettifica conguaglio "
FIELD LF_QUAA->RETCON
SHEET "Codice|Descrizione@65"
SHEET "Cod.|Descrizione@200"
INPUT F_RETCON56
ITEM " | "
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 (per il primo numero 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 (per il primo numero 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 "C|Conguaglio a seguito di rettifica di una precedente comunicazione tardivamente pervenuta al sostituto"
ITEM "D|Conguaglio a seguito di rettifica di una precedente comunicazione tempestivamente perventuta al sostituto ma per la quale non è stato effettuato il conguaglio nel mese di giugno"
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 "E|Conguaglio tardivo per mod.730-4 pervenuto tardivamente"
ITEM "F|Conguaglio tardivo per causa dipendente dal sostituto d'imposta"
OUTPUT F_RETCON56
FLAGS "U"
FLAGS "U"
END
GROUPBOX DLG_NULL 78 4
@ -633,6 +682,7 @@ BEGIN
PROMPT 2 7 "59 impo. rimborsata "
FIELD LF_QUAA->IMPRIMB
PICTURE "."
GROUP G_ALL
END
NUMBER F_IMPVER58 15
@ -640,6 +690,7 @@ BEGIN
PROMPT 44 7 "60 imposta versata"
FIELD LF_QUAA->IMPVER
PICTURE "."
GROUP G_ALL
END
NUMBER F_INTIRPEF59 15
@ -648,6 +699,7 @@ BEGIN
FIELD LF_QUAA->INTIRPEF
PICTURE "."
HELP "Interessi IRPEF"
GROUP G_ALL
END
GROUPBOX DLG_NULL 78 4
@ -658,26 +710,38 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 2 11 "62 impo. versata "
GROUP 6
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 44 11 "63 interessi "
// GROUP 7
PROMPT 2 11 "62 i.ver/tr.IRPEF"
// FLAGS "H"
GROUP G_730
END
NUMBER F_IMPVER60 15
BEGIN
//PROMPT 2 11 "Imposta versata "
PROMPT 23 11 ""
FIELD LF_QUAA->IMPVER2
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 44 11 "63 interessi "
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 44 11 "63 i.ri.IRPEF"
GROUP G_730
// FLAGS "H"
END
NUMBER F_INTER61 15
BEGIN
// PROMPT 44 11 "Interessi "
PROMPT 61 11 ""
FIELD LF_QUAA->INTER
PICTURE "."
@ -685,13 +749,19 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 2 12 "64 soprattasse saldo IRPEF per 95 e prima rata acconto del 96 "
GROUP 6
PROMPT 2 12 "64 soprattasse saldo IRPEF per 95 e prima rata acconto 96 "
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 2 12 "64 prima rata di acconto IRPEF per il 1996 "
// FLAGS "H"
GROUP G_730
END
NUMBER F_STSIRPEF62 15
BEGIN
// PROMPT 2 12 "Soprattasse saldo IRPEF per 94 e prima rata acconto del 95 "
PROMPT 61 12 ""
FIELD LF_QUAA->STSIRPEF
PICTURE "."
@ -706,13 +776,14 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 2 15 "65 Contr. rimborso "
GROUP 6
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 44 15 "66 Contr. versato "
// GROUP 7
PROMPT 2 15 "65 2rata ac.IRPEF96"
// FLAGS "H"
GROUP G_730
END
NUMBER F_CONRIMB63 15
@ -724,8 +795,15 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 2 16 "67 interessi "
// GROUP 7
PROMPT 44 15 "66 Contr.versato "
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 44 15 "66 i.v.trat.CSSN "
GROUP G_730
// FLAGS "H"
END
NUMBER F_CONVER64 15
@ -737,13 +815,20 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 2 16 "Imp. rimb. CSSN "
GROUP 7
PROMPT 2 16 "67 interessi "
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 2 16 "67 imp. rimb. CSSN "
// FLAGS "H"
GROUP G_730
END
NUMBER F_INTER65 15
BEGIN
// PROMPT 2 16 "Interessi "
// "Interessi "
PROMPT 21 16 ""
FIELD LF_QUAA->INTER2
PICTURE "."
@ -764,7 +849,7 @@ BEGIN
GROUP 1
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
@ -792,7 +877,7 @@ BEGIN
GROUP 5
END
GROUPBOX DLG_NULL 78 7
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 3 "@bPrima rata acconto C.S.S.N. per il 1996"
END
@ -800,12 +885,19 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 2 4 "68 contr. versato "
GROUP 6
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 2 4 "68 1r.acc.CSSN 96 "
GROUP G_730
// FLAGS "H"
END
NUMBER F_CONVER66 15
BEGIN
// PROMPT 2 4 "Contributo versato "
// "Contributo versato "
PROMPT 21 4 ""
FIELD LF_QUAA->CONVER2
PICTURE "."
@ -814,12 +906,19 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 44 4 "69 interessi "
GROUP 6
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 44 4 "69 2r.acc.CSSN 96"
GROUP G_730
// FLAGS "H"
END
NUMBER F_INTER67 15
BEGIN
// PROMPT 44 4 "Interessi "
// "69 Interessi "
PROMPT 61 4 ""
FIELD LF_QUAA->INTER3
PICTURE "."
@ -827,15 +926,17 @@ END
NUMBER F_STSCSSN68 15
BEGIN
PROMPT 2 5 "70 Soprattasse saldo C.S.S.N. 94 e prima rata acconto 95 "
PROMPT 2 5 "70 Soprattasse saldo C.S.S.N. 95 e prima rata acconto 96 "
FIELD LF_QUAA->STSCSSN70
GROUP G_ALL
PICTURE "."
END
NUMBER F_SEGDICNL69 2
BEGIN
PROMPT 2 6 "71 Mod.730/95 non liquidabile "
PROMPT 2 6 "71 Mod.730/96 non liquidabile "
FIELD LF_QUAA->M730NLIQ
FLAGS "Z"
SHEET "Codice|Descrizione@65"
INPUT F_SEGDICNL69
ITEM " |Niente"
@ -853,6 +954,7 @@ BEGIN
ITEM "12|Errata o incompleta dichiarazione del quadro F Mod.730/96 del dichiarante"
ITEM "13|Errata o incompleta dichiarazione del quadro F Mod.730/96 del coniuge"
OUTPUT F_SEGDICNL69
GROUP G_ALL
END
GROUPBOX DLG_NULL 78 4
@ -875,6 +977,7 @@ BEGIN
OUTPUT F_DENCAAF S0
OUTPUT F_NISCRA I1
OUTPUT F_CODFISCAAF S1
GROUP G_ALL
END
STRING F_DENCAAF 50

View File

@ -3,6 +3,9 @@ TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
#define G_DIPEND 1
#define G_QUADROA 2
PAGE "MODULO 770 - Manutenzione Quadro A1" -1 -1 78 21
GROUPBOX DLG_NULL 78 3
@ -43,7 +46,7 @@ NUMBER F_CODIP 6
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAA1->CODIP
FIELD LF_QUAA1->CODDIP
CHECKTYPE REQUIRED
KEY 1
END
@ -52,18 +55,39 @@ NUMBER F_CODANAGDIP 6
BEGIN
PROMPT 1 8 "@bCodice "
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Codice " CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_CODANAGDIP CODIP
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
INPUT CODDITTA QAF_CODDITTA
INPUT CODDIP F_CODIP
DISPLAY "Codice " CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_CODANAGDIP CODDIP
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti"
GROUP G_DIPEND
MESSAGE COPY, F_CODIP
FLAGS "H"
END
NUMBER F_CODANAGDIPQA 6
BEGIN
PROMPT 1 8 "@bCodice "
USE LF_QUAA1 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
JOIN LF_DIPEND KEY 1 INTO CODDITTA=CODDITTA CODDIP=CODDIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODDIP F_CODANAGDIPQA
DISPLAY "Codice " CODDIP
DISPLAY "Cognome@24" LF_DIPEND->COGNOME
DISPLAY "Nome@20" LF_DIPEND->NOME
DISPLAY "N°@4" NPROG
OUTPUT F_CODANAGDIPQA CODDIP
OUTPUT QAF_COGNOME LF_DIPEND->COGNOME
OUTPUT QAF_NOME LF_DIPEND->NOME
MESSAGE COPY, F_CODIP
GROUP G_QUADROA
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 8 ""
@ -81,15 +105,16 @@ BEGIN
PROMPT 1 10 "@bNumero "
CHECKTYPE REQUIRED
USE LF_QUAA1 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
JOIN LF_DIPEND KEY 1 INTO CODIP=CODIP
JOIN LF_DIPEND KEY 1 INTO CODDITTA=CODDITTA CODDIP=CODDIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
INPUT CODDIP F_CODIP
INPUT NPROG QAF_NPROG
DISPLAY "Codice@10" CODIP
DISPLAY "Codice@10" CODDIP
DISPLAY "Cognome@24" LF_DIPEND->COGNOME
DISPLAY "Nome@20" LF_DIPEND->NOME
DISPLAY "N°@4" NPROG
OUTPUT F_CODANAGDIP CODIP
OUTPUT F_CODANAGDIP CODDIP
OUTPUT F_CODANAGDIPQA CODDIP
OUTPUT QAF_NPROG NPROG
FIELD LF_QUAA1->NPROG
KEY 1

View File

@ -18,17 +18,17 @@ BEGIN
MESSAGE COPY,1@
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 17 1 ""
USE LF_DIPEND KEY 1
FIELD LF_QUAA1->CODIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
FIELD LF_QUAA1->CODDIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODDIP F_CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
CHECKTYPE REQUIRED
FLAGS "DG"
MESSAGE COPY,2@
@ -167,7 +167,7 @@ BEGIN
GROUP 1
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
@ -195,7 +195,7 @@ BEGIN
GROUP 5
END
GROUPBOX DLG_NULL 78 6
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 3 "@bPrima rata acconto C.S.S.N. per il 1995"
END
@ -255,13 +255,7 @@ BEGIN
FLAGS "U"
END
DATE F_DATARIC29
BEGIN
PROMPT 2 7 "Data ricezione Modello 730-5 "
FIELD LF_QUAA1->DATARIC26
END
GROUPBOX DLG_NULL 78 4
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 9 "@bDati identificativi del C.A.A.F che ha prestato assistenza "
END
@ -301,6 +295,12 @@ BEGIN
FLAGS "D"
END
DATE F_DATARIC29
BEGIN
PROMPT 2 12 "26 Data ricezione Modello 730-5 "
FIELD LF_QUAA1->DATARIC26
END
ENDPAGE
ENDMASK

View File

@ -3,6 +3,9 @@ TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
#define G_DIPEND 1
#define G_QUADROA 2
PAGE "MODULO 770 - Manutenzione Quadro A2" -1 -1 78 21
GROUPBOX DLG_NULL 78 3
@ -43,7 +46,7 @@ NUMBER F_CODIP 6
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAA2->CODIP
FIELD LF_QUAA2->CODDIP
CHECKTYPE REQUIRED
KEY 1
END
@ -53,15 +56,35 @@ BEGIN
PROMPT 1 8 "@bCodice "
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Codice " CODIP
INPUT CODDIP F_CODIP
DISPLAY "Codice " CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_CODANAGDIP CODIP
OUTPUT F_CODANAGDIP CODDIP
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti"
MESSAGE COPY, F_CODIP
FLAGS "H"
GROUP G_DIPEND
END
NUMBER F_CODANAGDIPQA 6
BEGIN
PROMPT 1 8 "@bCodice "
USE LF_QUAA2 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
JOIN LF_DIPEND KEY 1 INTO CODDITTA=CODDITTA CODDIP=CODDIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODDIP F_CODANAGDIPQA
DISPLAY "Codice " CODDIP
DISPLAY "Cognome@24" LF_DIPEND->COGNOME
DISPLAY "Nome@20" LF_DIPEND->NOME
DISPLAY "N°@4" NPROG
OUTPUT F_CODANAGDIPQA CODDIP
OUTPUT QAF_COGNOME LF_DIPEND->COGNOME
OUTPUT QAF_NOME LF_DIPEND->NOME
MESSAGE COPY, F_CODIP
GROUP G_QUADROA
END
STRING QAF_COGNOME 24
@ -81,16 +104,17 @@ BEGIN
PROMPT 1 10 "@bNumero "
CHECKTYPE REQUIRED
USE LF_QUAA2 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
JOIN LF_DIPEND KEY 1 INTO CODIP=CODIP
JOIN LF_DIPEND KEY 1 INTO CODDITTA=CODDITTA CODDIP=CODDIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
INPUT CODDIP F_CODIP
INPUT NPROG QAF_NPROG
DISPLAY "Codice@10" CODIP
DISPLAY "Codice@10" CODDIP
DISPLAY "Cognome@24" LF_DIPEND->COGNOME
DISPLAY "Nome@20" LF_DIPEND->NOME
DISPLAY "N°@4" NPROG
OUTPUT F_CODANAGDIP CODIP
OUTPUT QAF_NPROG NPROG
DISPLAY "N°@4" NPROG
OUTPUT F_CODANAGDIP CODDIP
OUTPUT F_CODANAGDIPQA CODDIP
OUTPUT QAF_NPROG NPROG
FIELD LF_QUAA2->NPROG
KEY 1
END

View File

@ -18,13 +18,13 @@ BEGIN
MESSAGE COPY,1@
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 17 1 ""
USE LF_DIPEND KEY 1
FIELD LF_QUAA2->CODIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
FIELD LF_QUAA2->CODDIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODDIP F_CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT QAF_COGNOME COGNOME
@ -67,6 +67,7 @@ STRING QA2F_CNEFF 1
BEGIN
PROMPT 2 4 "8 Conguagli non effettuati "
FIELD LF_QUAA2->CONEFF
FLAGS "U"
HELP "Conguagli non effettuati relativi all'assistenza 1995"
SHEET "Codice|Descrizione@85"
INPUT QA2F_CNEFF
@ -78,6 +79,7 @@ BEGIN
ITEM "E|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici"
ITEM "F|Rimborso non effettuato o rimborso effettuato parzialmente"
OUTPUT QA2F_CNEFF
GROUP G_ALL
END
STRING QA2F_RETCON 1
@ -99,29 +101,16 @@ BEGIN
PROMPT 1 6 "@bSALDO IRPEF PER IL 1994 "
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 7 "10 Imposta rimbor. "
GROUP 6
END
*/
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 7 "11 Imposta versata "
GROUP 7
END
*/
TEXT DLG_NULL
BEGIN
PROMPT 2 7 "10 Imposta rimbor. "
GROUP G_770
END
TEXT DLG_NULL
BEGIN
PROMPT 41 7 "11 Imposta versata "
PROMPT 2 7 "10 i.ver/tr.IRPEF""
GROUP G_730
END
NUMBER F_IIRPEFVER8 15
@ -131,32 +120,12 @@ BEGIN
PICTURE "."
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 41 7 "12 Interessi "
GROUP 6
END
*/
TEXT DLG_NULL
BEGIN
PROMPT 2 8 "12 Interessi "
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 10 "@bPRIMA RATA ACCONTO IRPEF PER IL 1995 "
PROMPT 41 7 "11 Imposta versata "
GROUP G_770
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 41 7 "13 Imposta versata "
GROUP 7
END
*/
NUMBER F_IIRPEFRI9 15
BEGIN
PROMPT 61 7 ""
@ -164,20 +133,11 @@ BEGIN
PICTURE "."
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 8 "14 Interessi "
GROUP 6
BEGIN
PROMPT 2 8 "12 Interessi "
END
TEXT DLG_NULL
BEGIN
PROMPT 2 8 "1a rata acc.IRPEF96 "
GROUP 7
END
*/
NUMBER F_INTER11 15
BEGIN
PROMPT 21 8 ""
@ -185,20 +145,17 @@ BEGIN
PICTURE "."
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 10 "@bPRIMA RATA ACCONTO IRPEF PER IL 1995 "
END
TEXT DLG_NULL
BEGIN
PROMPT 2 11 "13 Imposta versata "
// GROUP 6
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 11 "14 Interessi "
GROUP 7
END
*/
NUMBER F_PRIRPEF10 15
BEGIN
// PROMPT 2 11 "Imposta versata "
@ -213,12 +170,6 @@ BEGIN
// GROUP 6
END
TEXT DLG_NULL
BEGIN
PROMPT 41 11 "Imp.vers/tratt CSSN"
GROUP 7
END
NUMBER F_INTER11 15
BEGIN
// PROMPT 41 11 "Interessi "
@ -261,7 +212,7 @@ BEGIN
GROUP 1
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
@ -305,14 +256,6 @@ BEGIN
PROMPT 41 5 "17 Cont. versato "
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 5 "17 Cont. versato "
GROUP 7
END
*/
NUMBER QA2F_CSSNCRIMB 15
BEGIN
PROMPT 21 5 ""
@ -320,20 +263,6 @@ BEGIN
PICTURE "."
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 41 5 "18 Interessi "
GROUP 6
END
TEXT DLG_NULL
BEGIN
PROMPT 41 5 "2a rata acc.CSSN 96"
GROUP 7
END
*/
NUMBER QA2F_CSSNCVER 15
BEGIN
// PROMPT 41 5 "Contr. versato "

View File

@ -1,13 +1,15 @@
#include "771200.h"
TOOLBAR "" 0 18 0 4
#include <toolbar.h>
BUTTON F_BASEOCCUPA 24 2
BEGIN
PROMPT -13 -3 "~Dati Base occupazionale"
PROMPT -13 -3 "~Dati base occupazionale"
END
#include <toolbar.h>
ENDPAGE
#define G_DIPEND 1
#define G_QUADROA 2
PAGE "Manutenzione dati base occupazionale" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
@ -53,51 +55,53 @@ BEGIN
KEY 1
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAA3->CODIP
FIELD LF_QUAA3->CODDIP
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODANAGDIP 5
NUMBER F_CODANAGDIP 6
BEGIN
PROMPT 10 7 ""
USE LF_DIPEND KEY 1 SELECT (CODDITTA=#QAF_CODDITTA)
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODANAGDIP
DISPLAY "Codice " CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_CODANAGDIP CODIP
INPUT CODDIP F_CODANAGDIP
DISPLAY "Codice " CODDIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_CODANAGDIP CODDIP
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
MESSAGE COPY, F_CODIP
ADD RUN 773mod -1 771150a 45 "Anagrafica dipendenti"
GROUP 2
GROUP G_DIPEND
FLAGS "H"
END
NUMBER F_CODIPQUADRO 5
NUMBER F_CODIPQUADRO 6
BEGIN
PROMPT 10 7 ""
USE LF_QUAA3 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA) && (NPROG="1"))
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIPQUADRO
DISPLAY "Codice" CODIP
INPUT CODDIP F_CODIPQUADRO
DISPLAY "Codice" CODDIP
DISPLAY "N.ro" NPROG
DISPLAY "Inizio rapporto" DIRAPTI
DISPLAY "gg.incremento" NGINC15
DISPLAY "Inizio rapporto" DIRAPTI
DISPLAY "gg.incremento" NGINC15
DISPLAY "Reddito corrisposto" REDCOR16
DISPLAY "gg.incremento" NGINC17
DISPLAY "gg.incremento" NGINC17
DISPLAY "Reddito corrisposto" REDCOR18
OUTPUT F_CODIPQUADRO CODIP
MESSAGE COPY, F_CODIP
ADD RUN BA4 -1
//FLAGS "HP"
FLAGS "H"
GROUP 1
OUTPUT F_CODIPQUADRO CODDIP
OUTPUT F_CODANAGDIP CODDIP
OUTPUT QAF_NPROG NPROG
// ADD RUN BA4 -1
FLAGS "H"
MESSAGE COPY, F_CODIP
GROUP G_QUADROA
END
STRING QAF_COGNOME 24

View File

@ -17,10 +17,10 @@ BEGIN
KEY 1
END
NUMBER F_CODIP 5
NUMBER F_CODIP 6
BEGIN
PROMPT 17 1 ""
FIELD LF_QUAA3->CODIP
FIELD LF_QUAA3->CODDIP
MESSAGE COPY,F_CODIP2
FLAGS "DG"
KEY 1
@ -31,7 +31,7 @@ NUMBER F_CODIP2 5
BEGIN
USE LF_DIPEND KEY 1
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
INPUT CODDIP F_CODIP
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
@ -130,7 +130,7 @@ NUMBER F_CODIP2_2 5
BEGIN
USE LF_DIPEND KEY 1
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
INPUT CODDIP F_CODIP
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME

View File

@ -1,6 +1,45 @@
#include "771200.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
BUTTON DLG_SAVEREC 8 2
BEGIN
PROMPT -16 -1 "~Registra"
FLAGS "D"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_NEWREC 8 2
BEGIN
PROMPT -26 -1 "~Nuovo"
MESSAGE EXIT,K_INS
FLAGS "D"
END
BUTTON DLG_DELREC 8 2
BEGIN
PROMPT -36 -1 "~Elimina"
MESSAGE EXIT,K_DEL
FLAGS "D"
END
BUTTON DLG_FINDREC 8 2
BEGIN
PROMPT -46 -1 "Ri~cerca"
MESSAGE EXIT,K_F9
FLAGS "D"
END
BUTTON DLG_CANCEL 8 2
BEGIN
PROMPT -56 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 8 2
BEGIN
PROMPT -66 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
@ -35,7 +74,7 @@ END
NUMBER F_BSE_CONSBASOCC 5
BEGIN
PROMPT 2 5 "Consistenza base occupazionale "
PROMPT 2 5 "Consistenza base occupazionale al 12/06/94 "
FIELD LF_BASEBIS->CONSBASOCC
FLAGS "R"
END

View File

@ -564,6 +564,7 @@ void TQuadroC_E2::leggi_sort(TProgind& p)
acc_imp = rp->acim;
bInps = rp->bInps; // se la riga aveva il contributo inps nella cau.
rQCInps = bInps ? rp->inps : ZERO;
if (QuadroE1() && !acc_imp)
{
genera_prospetto(codcaus,rp->comp,rp->impo,rp->rite);

View File

@ -120,6 +120,12 @@ int TQuadroG::read(TMask& m)
return err;
}
void TQuadroG::init_insert_mode (TMask& m)
{
fill_ss(m);
fill_arr(m);
}
void TQuadroG::init_modify_mode (TMask& m)
{
m.disable(DLG_DELREC);

View File

@ -42,6 +42,7 @@ class TQuadroG : public TRelation_application
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_insert_mode (TMask&);
virtual void init_query_mode (TMask&);
virtual void init_modify_mode (TMask&);
void fill_ss(TMask& m);
@ -124,7 +125,8 @@ class TQuadroG1 : public TRelation_application
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
virtual void init_query_mode (TMask&);
virtual void init_insert_mode (TMask&);
virtual void init_modify_mode (TMask&);
// void init_mask (TMask&);
void fill_arr(TMask& m);

View File

@ -160,14 +160,17 @@ bool M71310_application::cod_tributo(TMask_field& f , KEY k)
bool M71310_application::auto_premi(TMask_field& f, KEY k)
{
if (k == K_TAB && f.mask().is_running())
{
{
TMask& m = f.mask();
m.stop_run(K_AUTO_ENTER);
/*
TRelation* rel = app()._rel;
TMask& m = f.mask();
TMask& m = f.mask();
m.autosave(rel);
if (rel->read() == NOERR)
f.mask().stop_run(K_AUTO_ENTER);
m.stop_run(K_AUTO_ENTER);
else
f.mask().stop_run(K_INS);
m.stop_run(K_INS); */
}
return TRUE;
}
@ -448,7 +451,7 @@ bool M71310_application::user_create()
_msk->set_handler (F_QLANNOPAG, anno);
_msk->set_handler (F_QLCODTRIB, cod_tributo);
_msk->set_handler (F_QLNUMERO, auto_premi);
_msk->set_handler (F_CAB, auto_premi);
_msk->set_handler (F_NPROG, auto_premi);
_msk->set_handler (F_ARTBIL, artbil_hnd);
return TRUE;

View File

@ -29,8 +29,7 @@
#define F_QUADRO 130
#define F_ABI 131
#define F_CAB 132
#define F_CAB1 133
#define F_CAB2 134
#define F_NPROG 133
#define FH_ABISERIE 135
#define FH_CAB 136

View File

@ -109,13 +109,14 @@ BEGIN
OUTPUT F_QLCODTRIB QLCT
OUTPUT F_ARTBIL QLAB
OUTPUT F_QLSERIE QLSERIE
OUTPUT F_ABI QLSERIE
OUTPUT F_CAB1 QLNUMERO[1,5]
OUTPUT F_CAB QLNUMERO[6,11]
OUTPUT F_ABI QLSERIE
OUTPUT F_CAB QLNUMERO[1,5]
OUTPUT F_NPROG QLNUMERO[6,11]
OUTPUT F_QLNUMERO QLNUMERO
FIELD LF_QUAL->QLAP
FLAGS "R"
VALIDATE FIXLEN_FUNC 4
WARNING "L' anno deve essere indicato per esteso"
WARNING "L'anno deve essere indicato per esteso"
KEY 1
END
@ -203,7 +204,7 @@ BEGIN
KEY 1
END
NUMBER F_CAB1 5
NUMBER F_CAB 5
BEGIN
PROMPT 63 10 ""
FIELD LF_QUAL->QLNUMERO[1,5]
@ -212,7 +213,7 @@ BEGIN
KEY 1
END
NUMBER F_CAB 6
NUMBER F_NPROG 6
BEGIN
PROMPT 69 10 ""
FIELD LF_QUAL->QLNUMERO[6,11]

View File

@ -145,9 +145,7 @@ void Tab770_application::init_insert_mode(TMask& m)
}
void Tab770_application::init_modify_mode(TMask& m)
{
// init_mask(m);
}
{}
bool Tab770_application::user_create()
{

View File

@ -143,7 +143,6 @@ bool TGenera::set(const long codditta, TConfig* cnf, const char* section)
int TGenera::controllo_parametri()
{
TLocalisamfile base (LF_BASE);
base.setkey(1);
base.zero();
base.put("CODDITTA", _codditta);

View File

@ -159,6 +159,135 @@ int riporti_dich(int argc, char* argv[])
return 0;
}
const char* build_fill_string(TString& qcomp)
{
// NB cambiare qui il numero dei quadri
const int NUM_QUADRI = 25; // sono 26 posizioni perche' parte da 0
const int agg = NUM_QUADRI - qcomp.len();
__tmp.cut(agg);
__tmp.fill(' ', agg);
return __tmp;
}
void TRiporti::setta_flag_quadri_comp(const long codditta, const int quadro, const bool almeno_una_riga, const long dich)
{
TLocalisamfile basebis(LF_BASEBIS);
basebis.setkey(1);
basebis.zero();
basebis.put(BSE_CODDITTA, codditta);
if (basebis.read(_isequal, _lock) == NOERR)
{
TString qcomp(basebis.get(BSE_QCOMP));
TString dep(build_fill_string(qcomp));
qcomp << dep;
// TString qcomp (format("%25s", (const char*) app));
if (almeno_una_riga)
qcomp[(int)quadro] = 'X';
else
qcomp[(int)quadro] = ' ';
basebis.put(BSE_QCOMP, qcomp);
basebis.rewrite();
// basebis.reread(_unlock);
}
else
warning_box("Dichiarazione non presente: impossibile registrare il campo Quadri compilati");
//
// Setta flag quadri compilati del dichiarante; cio' va fatto in 3 casi:
//
// 1. dalla gestione dei singoli quadri di una ditta "estinta".
// 2. dal prg "Riporti" del dichiarante.
// 3. dalla gestione dei quadri del dichiarante stesso.
//
const long codic = sogg_estinto(codditta);
const long ha_dichiarante = dich ? dich : codic;
const bool sono_dichiarante = sogg_dic(codditta);
if (ha_dichiarante || sono_dichiarante)
{
basebis.setkey(1);
basebis.zero();
basebis.put("TIPOQUA", COD_QUA_I_DIC);
basebis.put(BSE_CODDITTA, sono_dichiarante ? codditta : ha_dichiarante);
if (basebis.read(_isequal, _lock) == NOERR)
{
TString qcomp(basebis.get(BSE_QCOMP));
TString dep(build_fill_string(qcomp));
qcomp << dep;
// TString qcomp (format("%25s", (const char*) app));
if (almeno_una_riga)
qcomp[(int)quadro] = 'X';
else
qcomp[(int)quadro] = ' ';
basebis.put(BSE_QCOMP, qcomp);
basebis.rewrite();
// basebis.reread(_unlock);
}
else
warning_box("Dichiarazione non presente: impossibile registrare il campo Quadri compilati");
}
}
void TRiporti::setta_flag_quadro_I(const long codditta, const long dich)
{
bool compilato = FALSE;
TLocalisamfile base (LF_BASE);
TLocalisamfile basebis (LF_BASEBIS);
base.setkey(1);
base.zero();
base.put(BSE_CODDITTA, codditta);
base.read(_isequal, _lock);
basebis.setkey(1);
basebis.zero();
basebis.put(BSB_CODDITTA, codditta);
basebis.read(_isequal, _lock);
TString qcomp(basebis.get(BSE_QCOMP));
TString dep(build_fill_string(qcomp));
qcomp << dep;
// TString qcomp (format("%25s", (const char*) app));
// I campi del quadro I sono in parte su base in parte su basebis
for (int i = 0; i < CAMPI_IB1; i++)
if (base.get_real(_campi_I1[i]) != ZERO)
{
compilato = TRUE;
break;
}
base.reread(_unlock);
if (!compilato)
{
/* TLocalisamfile basebis (LF_BASEBIS);
basebis.setkey(1);
basebis.zero();
basebis.put(BSB_CODDITTA, codditta);
basebis.read();*/
for (int i = 0; i < CAMPI_IB2; i++)
if (basebis.get_real(_campi_I2[i]) != ZERO)
{
compilato = TRUE;
break;
}
}
if (compilato)
qcomp[(int)I] = 'X';
else
qcomp[(int)I] = ' ';
basebis.put(BSE_QCOMP, qcomp);
basebis.rewrite();
}
HIDDEN bool filter_func (const TRelation * rel)
{
int anno,annod;
@ -832,132 +961,6 @@ void TRiporti::calcola_riporti_A2(TCursor* cur, const long dich)
setta_flag_quadri_comp(_codditta, A2, almeno_una_riga, dich);
}
const char* build_fill_string(TString& qcomp)
{
// NB cambiare qui il numero dei quadri
const int NUM_QUADRI = 25; // sono 26 posizioni perche' parte da 0
const int agg = NUM_QUADRI - qcomp.len();
__tmp.cut(agg);
__tmp.fill(' ', agg);
return __tmp;
}
void TRiporti::setta_flag_quadri_comp(const long codditta, const int quadro, const bool almeno_una_riga, const long dich)
{
TLocalisamfile basebis(LF_BASEBIS);
basebis.setkey(1);
basebis.zero();
basebis.put(BSE_CODDITTA, codditta);
if (basebis.read(_isequal, _testandlock) == NOERR)
{
TString qcomp(basebis.get(BSE_QCOMP));
TString dep(build_fill_string(qcomp));
qcomp << dep;
// TString qcomp (format("%25s", (const char*) app));
if (almeno_una_riga)
qcomp[(int)quadro] = 'X';
else
qcomp[(int)quadro] = ' ';
basebis.put(BSE_QCOMP, qcomp);
basebis.rewrite();
basebis.reread(_unlock);
}
else
warning_box("Dichiarazione non presente: impossibile registrare il campo Quadri compilati");
//
// Setta flag quadri compilati del dichiarante; cio' va fatto in 3 casi:
//
// 1. dalla gestione dei singoli quadri di una ditta "estinta".
// 2. dal prg "Riporti" del dichiarante.
// 3. dalla gestione dei quadri del dichiarante stesso.
//
const long codic = sogg_estinto(codditta);
const long ha_dichiarante = dich ? dich : codic;
const bool sono_dichiarante = sogg_dic(codditta);
if (ha_dichiarante || sono_dichiarante)
{
basebis.setkey(1);
basebis.zero();
basebis.put("TIPOQUA", COD_QUA_I_DIC);
basebis.put(BSE_CODDITTA, sono_dichiarante ? codditta : ha_dichiarante);
if (basebis.read(_isequal, _testandlock) == NOERR)
{
TString qcomp(basebis.get(BSE_QCOMP));
TString dep(build_fill_string(qcomp));
qcomp << dep;
// TString qcomp (format("%25s", (const char*) app));
if (almeno_una_riga)
qcomp[(int)quadro] = 'X';
else
qcomp[(int)quadro] = ' ';
basebis.put(BSE_QCOMP, qcomp);
basebis.rewrite();
basebis.reread(_unlock);
}
else
warning_box("Dichiarazione non presente: impossibile registrare il campo Quadri compilati");
}
}
void TRiporti::setta_flag_quadro_I(const long codditta, const long dich)
{
bool compilato = FALSE;
TLocalisamfile base (LF_BASE);
TLocalisamfile basebis (LF_BASEBIS);
base.setkey(1);
base.zero();
base.put(BSE_CODDITTA, codditta);
base.read();
basebis.setkey(1);
basebis.zero();
basebis.put(BSB_CODDITTA, codditta);
basebis.read();
TString qcomp(basebis.get(BSE_QCOMP));
TString dep(build_fill_string(qcomp));
qcomp << dep;
// TString qcomp (format("%25s", (const char*) app));
for (int i = 0; i < CAMPI_IB1; i++)
if (base.get_real(_campi_I1[i]) != ZERO)
{
compilato = TRUE;
break;
}
if (!compilato)
{
TLocalisamfile basebis (LF_BASEBIS);
basebis.setkey(1);
basebis.zero();
basebis.put(BSB_CODDITTA, codditta);
basebis.read();
for (int i = 0; i < CAMPI_IB2; i++)
if (basebis.get_real(_campi_I2[i]) != ZERO)
{
compilato = TRUE;
break;
}
}
if (compilato)
qcomp[(int)I] = 'X';
else
qcomp[(int)I] = ' ';
basebis.put(BSE_QCOMP, qcomp);
basebis.rewrite();
}
void TRiporti::calcola_riporti_H(TCursor* cur, const long dich)
{
TLocalisamfile basebis (LF_BASEBIS);

View File

@ -62,7 +62,7 @@ END
TEXT 97
BEGIN
PROMPT 2 13 "Codice ABI "
GROUP ABI_CAB
GROUP ABICAB
END
TEXT 98
@ -74,7 +74,7 @@ END
TEXT 99
BEGIN
PROMPT 46 13 "Codice CAB "
GROUP ABI_CAB
GROUP ABICAB
END
DATE F_DATAVERS
@ -96,13 +96,11 @@ RADIOBUTTON F_TIPOVERS 26
BEGIN
PROMPT 46 7 "Tipo versamento "
ITEM "B|Delega bancaria"
MESSAGE SHOW,97|SHOW,99|SHOW,F_ABI|SHOW,F_CAB|HIDE,96|HIDE,98|HIDE,F_SERIE|HIDE,F_NUMERO
MESSAGE SHOW,ABICAB@|SHOW,97|SHOW,99|HIDE,96|HIDE,98|HIDE,F_SERIE|HIDE,F_NUMERO
ITEM "D|Distinta"
MESSAGE SHOW,96|SHOW,98|SHOW,F_SERIE|SHOW,F_NUMERO|HIDE,97|HIDE,99|HIDE,F_ABI|HIDE,F_CAB
MESSAGE ENABLE,F_SERIE
MESSAGE HIDE,ABICAB@|ENABLE,F_SERIE|SHOW,96|SHOW,98|SHOW,F_SERIE|SHOW,F_NUMERO|HIDE,97|HIDE,99|
ITEM "C|C/C Postale"
MESSAGE SHOW,96|SHOW,98|SHOW,F_SERIE|SHOW,F_NUMERO|HIDE,97|HIDE,99|HIDE,F_ABI|HIDE,F_CAB
MESSAGE CLEAR,F_SERIE|DISABLE,F_SERIE
MESSAGE HIDE,ABICAB@|SHOW,96|SHOW,98|SHOW,F_SERIE|SHOW,F_NUMERO|HIDE,97|HIDE,99|CLEAR,F_SERIE|DISABLE,F_SERIE
FIELD LF_BASE->TIPOVERS
END
@ -111,7 +109,7 @@ BEGIN
PROMPT 18 13 ""
FIELD LF_BASE->SERIE
FLAGS "Z"
GROUP ABI_CAB
GROUP ABICAB
END
NUMBER F_CAB 5
@ -119,7 +117,7 @@ BEGIN
PROMPT 63 13 ""
FIELD LF_BASE->NUMERO[1,5]
FLAGS "Z"
GROUP ABI_CAB
GROUP ABICAB
END
NUMBER F_PROGBANCA 6
@ -127,7 +125,7 @@ BEGIN
PROMPT 69 13 ""
FLAGS "Z"
FIELD LF_BASE->NUMERO[6,11]
GROUP ABI_CAB
GROUP ABICAB
END
STRING F_SERIE 5

View File

@ -25,6 +25,11 @@ TQuadroG1::TQuadroG1()
inline TQuadroG1& app() { return (TQuadroG1&) main_app(); }
void TQuadroG1::init_insert_mode (TMask& m)
{
fill_arr(m);
}
void TQuadroG1::init_modify_mode (TMask& m)
{
// init_mask(m);

View File

@ -221,15 +221,14 @@ bool is_dipendente(const long codditta, const long coddip)
bool is_erede(const long codditta, const long coddip)
{
TLocalisamfile dip (LF_DIPEND);
TString16 CodDipDec("");
TString CodDipDec;
dip.setkey(1);
dip.zero();
dip.put(DIP_CODDITTA, codditta);
dip.put(DIP_CODIP, coddip);
dip.put(DIP_CODDITTA, (long)codditta);
dip.put(DIP_CODIP, (long)coddip);
if (dip.read() == NOERR)
CodDipDec = dip.get(DIP_CODDIPDEC);
CodDipDec.trim();
return CodDipDec.not_empty();
}
@ -287,7 +286,7 @@ bool scrivi_erede(const long codditta, const long deceduto, const long coddip)
if (ValCampo.empty() || ValCampo == "0")
{
trovato = TRUE;
dip.put(NomeCampo, (long)coddip);
dip.put(NomeCampo, sCodErede);
dip.rewrite();
break;
}

View File

@ -56,6 +56,15 @@
#define RICERCA_QB 5
#define GROUP_ALL 6
#define QBG_ANADIP 1
#define QBG_QUADROB 2
#define QBF_CODDIP_ANAG 228
#define QBF_CODDIP_QB 229
#define CODDITTA77 181
#define ANNODIC77 182

View File

@ -21,6 +21,8 @@
#define QB1F_NOME 199
#define QB1F_HCODDIP 200
#define RICERCA_DIP 4
#define RICERCA_QB 5
#define QB1G_ANADIP 1
#define QB1G_QUADROB 2
#define QB1F_CODDIP_ANAG 201
#define QB1F_CODDIP_QB1 202

View File

@ -71,7 +71,7 @@ END
NUMBER F_CODANAGRPERC 5
BEGIN
PROMPT 15 8 ""
USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA)
USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA))
JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA
INPUT TIPOA F_TIPOA
@ -90,7 +90,7 @@ END
NUMBER F_CODANAGRCOM 5
BEGIN
PROMPT 15 8 ""
USE LF_ANAG KEY 1
USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA)
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRCOM
DISPLAY "Tipo " TIPOA

View File

@ -89,9 +89,10 @@ END
NUMBER QNF_ANNORIF 4
BEGIN
PROMPT 17 9 ""
WARNING "Manca l'anno"
WARNING "Anno non valido"
CHECKTYPE REQUIRED
FIELD LF_QUAN->ANNORIF
FIELD LF_QUAN->ANNORIF
VALIDATE FIXLEN_FUNC 4
END
TEXT DLG_NULL

View File

@ -89,9 +89,10 @@ END
NUMBER QQF_ANNORIF 4
BEGIN
PROMPT 17 9 ""
WARNING "Manca l'anno"
WARNING "Anno non valido"
CHECKTYPE REQUIRED
FIELD LF_QUAQ->ANNOPAG
VALIDATE FIXLEN_FUNC 4
END
TEXT DLG_NULL

View File

@ -89,9 +89,10 @@ END
NUMBER QRF_ANNORIF 4
BEGIN
PROMPT 17 9 ""
WARNING "Manca l'anno"
WARNING "Anno non valido"
CHECKTYPE REQUIRED
FIELD LF_QUAR->ANNORIF
VALIDATE FIXLEN_FUNC 4
END
TEXT DLG_NULL

View File

@ -89,9 +89,10 @@ END
NUMBER QTF_ANNORIF 4
BEGIN
PROMPT 17 9 ""
WARNING "Manca l'anno"
WARNING "Anno non valido"
CHECKTYPE REQUIRED
FIELD LF_QUAT->ANNOPAG
VALIDATE FIXLEN_FUNC 4
END
TEXT DLG_NULL

View File

@ -1,56 +1,59 @@
#ifndef _ANADIP_H
#define _ANADIP_H
// Campi maschera manutenzione anagrafica dipendenti
#define ADF_CODDITTA 181
#define F_RAGSOCIALE 102
#define ADF_DIP_CODDIP 103
#define F_DIP_CODFI 104
#define F_DIP_COGNOME 105
#define F_DIP_NOME 106
#define F_DIP_SESSO 107
#define F_DIP_DATANA 108
#define F_DIP_COMUNENA 109
#define F_DIP_PROVNA 110
#define F_DIP_COMUNERE 111
#define F_DIP_PROVRE 112
#define F_DIP_INDRE 113
#define F_DIP_QUALIFICA 114
#define F_DIP_STATOCIV 115
#define F_DIP_EREDE 116
#define F_DIP_CODEREDE0 117
#define F_DIP_CODEREDE1 118
#define F_DIP_CODEREDE2 119
#define F_DIP_CODEREDE3 120
#define F_DIP_CODEREDE4 121
#define F_DIP_CODEREDE5 122
#define F_DIP_CODEREDE6 123
#define F_DIP_CODEREDE7 124
#define F_DIP_CODEREDE8 125
#define F_DIP_CODEREDE9 126
#define F_DIP_COGNEREDE0 127
#define F_DIP_COGNEREDE1 128
#define F_DIP_COGNEREDE2 129
#define F_DIP_COGNEREDE3 130
#define F_DIP_COGNEREDE4 131
#define F_DIP_COGNEREDE5 132
#define F_DIP_COGNEREDE6 133
#define F_DIP_COGNEREDE7 134
#define F_DIP_COGNEREDE8 135
#define F_DIP_COGNEREDE9 136
#define F_DIP_NOMEREDE0 137
#define F_DIP_NOMEREDE1 138
#define F_DIP_NOMEREDE2 139
#define F_DIP_NOMEREDE3 140
#define F_DIP_NOMEREDE4 141
#define F_DIP_NOMEREDE5 142
#define F_DIP_NOMEREDE6 143
#define F_DIP_NOMEREDE7 144
#define F_DIP_NOMEREDE8 145
#define F_DIP_NOMEREDE9 146
// Aggiunte 96
#define ADF_CODDIPDEC 147
#define ADF_ASSFIS 148
#endif
#ifndef _ANADIP_H
#define _ANADIP_H
// Campi maschera manutenzione anagrafica dipendenti
#define ADF_CODDITTA 181
#define F_RAGSOCIALE 102
#define ADF_DIP_CODDIP 103
#define F_DIP_CODFI 104
#define F_DIP_COGNOME 105
#define F_DIP_NOME 106
#define F_DIP_SESSO 107
#define F_DIP_DATANA 108
#define F_DIP_COMUNENA 109
#define F_DIP_PROVNA 110
#define F_DIP_COMUNERE 111
#define F_DIP_PROVRE 112
#define F_DIP_INDRE 113
#define F_DIP_QUALIFICA 114
#define F_DIP_STATOCIV 115
#define F_DIP_EREDE 116
#define F_DIP_CODEREDE0 117
#define F_DIP_CODEREDE1 118
#define F_DIP_CODEREDE2 119
#define F_DIP_CODEREDE3 120
#define F_DIP_CODEREDE4 121
#define F_DIP_CODEREDE5 122
#define F_DIP_CODEREDE6 123
#define F_DIP_CODEREDE7 124
#define F_DIP_CODEREDE8 125
#define F_DIP_CODEREDE9 126
#define F_DIP_COGNEREDE0 127
#define F_DIP_COGNEREDE1 128
#define F_DIP_COGNEREDE2 129
#define F_DIP_COGNEREDE3 130
#define F_DIP_COGNEREDE4 131
#define F_DIP_COGNEREDE5 132
#define F_DIP_COGNEREDE6 133
#define F_DIP_COGNEREDE7 134
#define F_DIP_COGNEREDE8 135
#define F_DIP_COGNEREDE9 136
#define F_DIP_NOMEREDE0 137
#define F_DIP_NOMEREDE1 138
#define F_DIP_NOMEREDE2 139
#define F_DIP_NOMEREDE3 140
#define F_DIP_NOMEREDE4 141
#define F_DIP_NOMEREDE5 142
#define F_DIP_NOMEREDE6 143
#define F_DIP_NOMEREDE7 144
#define F_DIP_NOMEREDE8 145
#define F_DIP_NOMEREDE9 146
// Aggiunte 96
#define ADF_CODDIPDEC 147
#define ADF_ASSFIS 148
#define ADF_COMNASC 149
#define ADF_COMRES 150
#define ADF_CODCOMNASC 151
#endif

View File

@ -37,14 +37,17 @@ STRING F_CODFISC 11
BEGIN
PROMPT 4 5 "Codice fiscale "
FIELD LF_TABCOM->S1
CHECKTYPE REQUIRED
WARNING "Manca il codice fiscale"
VALIDATE PI_FUNC F_STATO
END
NUMBER F_ISCALBO 5
BEGIN
PROMPT 4 7 "Codice iscrizione albo "
// FIELD LF_TABCOM->S2
FIELD LF_TABCOM->I1
CHECKTYPE REQUIRED
WARNING "Manca il codice iscrizione albo"
END
ENDPAGE

View File

@ -4,7 +4,7 @@
#define __DIPEND_H
#define DIP_CODDITTA "CODDITTA"
#define DIP_CODIP "CODIP"
#define DIP_CODIP "CODDIP"
#define DIP_COGNOME "COGNOME"
#define DIP_NOME "NOME"
#define DIP_CODFI "CODFI"

View File

@ -19,7 +19,7 @@
#include <urldefid.h>
#include <tabutil.h>
#include <config.h>
#include <progind.h>
#include "dipend.h"
#include <nditte.h>
#include "77lib.h"
@ -31,8 +31,11 @@
#define CODDITTA77 181
#define ANNODIC77 182
HIDDEN const char* QUALIFICA_EREDE = "11";
void socbbis_setta_ditta(TMask& m);
long ADCalcolaItems(const int lffile, const long codditta, const long coddip);
class TGenericRel_application : public TRelation_application
{
@ -42,10 +45,13 @@ class TGenericRel_application : public TRelation_application
static bool PE1calcrit_handler (TMask_field& m, KEY k);
static bool ADabilita_coddipdec (TMask_field& m, KEY k);
static bool ADCodDipDec (TMask_field& m, KEY k);
static bool eredi_handler (TMask_field& m, KEY k);
void ADCancellaQuadri(const long codditta,const long coddip);
// static bool eredi_handler (TMask_field& m, KEY k);
static bool date_handler (TMask_field& m, KEY k);
long _codditta;
long _lCodDipDec;
long _lCodDip;
TString16 _sQualificaPrec; // qualifica prima di andare in edit
const char* _maskname;
int _num;
TString16 _quadro;
@ -130,8 +136,6 @@ bool TGenericRel_application::user_create()
if (Dipendenti())
{
// _msk->set_handler(F_DIP_EREDE, eredi_handler);
_msk->set_handler(ADF_CODDIPDEC, eredi_handler);
_msk->set_handler(F_DIP_QUALIFICA, ADabilita_coddipdec);
_msk->set_handler(ADF_CODDIPDEC, ADCodDipDec);
set_search_field(ADF_DIP_CODDIP);
@ -187,7 +191,7 @@ bool TGenericRel_application::user_destroy()
{
if (_quadro != "" && _quadro != "0")
if (_registra)
_rip.set(_quadro ,0);
_rip.set(_quadro);
delete _msk;
delete _rel;
return TRUE;
@ -209,9 +213,230 @@ int TGenericRel_application::write(const TMask& m)
return err;
}
// Costruisce un cursore solo per sapere gli items per la progind
long ADCalcolaItems(const int lffile, const long codditta, const long coddip)
{
long items=0L;
TRelation* rel = new TRelation(lffile);
TString filtro;
filtro.format("CODDITTA=%ld && CODDIP=%ld", codditta,coddip);
TCursor* cur = new TCursor(rel,filtro,1);
(*cur) = 0L;
items = cur->items();
delete cur;
delete rel;
return items;
}
void TGenericRel_application::ADCancellaQuadri(const long codditta,const long coddip)
{
bool bRimossoA,bRimossoA1,bRimossoA2,bRimossoA3,bRimossoB,bRimossoB1;
bRimossoA=bRimossoA1=bRimossoA2=bRimossoA3=bRimossoB=bRimossoB1=FALSE;
long items = ADCalcolaItems(LF_QUAA, codditta, coddip);
TProgind progA(items,"Cancellazione quadro A", FALSE,TRUE);
// Cancella quadro A
TLocalisamfile qa(LF_QUAA);
qa.zero();
qa.put("CODDITTA", (long) codditta);
qa.put("CODDIP", (long) coddip);
TRectype dep(qa.curr());
for (qa.read(_isgteq, _lock); !qa.eof(); qa.next(_lock))
{
progA.addstatus(1);
if (qa.curr() > dep)
{
qa.reread(_unlock);
break;
}
const long lDit = qa.get_long("CODDITTA");
const long lDip = qa.get_long("CODDIP");
if (lDit == codditta && lDip == coddip)
{
bRimossoA = TRUE;
qa.remove();
}
}
// Cancella quadro A1
items = ADCalcolaItems(LF_QUAA1, codditta, coddip);
TProgind progA1(items,"Cancellazione quadro A-1", FALSE,TRUE);
TLocalisamfile qa1(LF_QUAA1);
qa1.zero();
qa1.put("CODDITTA", (long) codditta);
qa1.put("CODDIP", (long) coddip);
TRectype dep1(qa1.curr());
for (qa1.read(_isgteq, _lock); !qa1.eof(); qa1.next(_lock))
{
progA1.addstatus(1);
if (qa1.curr() > dep1)
{
qa1.reread(_unlock);
break;
}
const long lDit = qa1.get_long("CODDITTA");
const long lDip = qa1.get_long("CODDIP");
if (lDit == codditta && lDip == coddip)
{
bRimossoA1 = TRUE;
qa1.remove();
}
}
// Cancella quadro A2
items = ADCalcolaItems(LF_QUAA2, codditta, coddip);
TProgind progA2(items,"Cancellazione quadro A-2", FALSE,TRUE);
TLocalisamfile qa2(LF_QUAA2);
qa2.zero();
qa2.put("CODDITTA", (long) codditta);
qa2.put("CODDIP", (long) coddip);
TRectype dep2(qa2.curr());
for (qa2.read(_isgteq, _lock); !qa2.eof(); qa2.next(_lock))
{
progA2.addstatus(1);
if (qa2.curr() > dep2)
{
qa2.reread(_unlock);
break;
}
const long lDit = qa2.get_long("CODDITTA");
const long lDip = qa2.get_long("CODDIP");
if (lDit == codditta && lDip == coddip)
{
bRimossoA2 = TRUE;
qa2.remove();
}
}
// Cancella quadro A3
items = ADCalcolaItems(LF_QUAA3, codditta, coddip);
TProgind progA3(items,"Cancellazione quadro A-3", FALSE,TRUE);
TLocalisamfile qa3(LF_QUAA3);
qa3.zero();
qa3.put("CODDITTA", (long) codditta);
qa3.put("NPROG", 1);
qa3.put("CODDIP", (long) coddip);
TRectype dep3(qa3.curr());
for (qa3.read(_isgteq, _lock); !qa3.eof(); qa3.next(_lock))
{
progA3.addstatus(1);
const long lDit = qa3.get_long("CODDITTA");
const long lDip = qa3.get_long("CODDIP");
if (lDit != codditta || lDip != coddip)
{
qa3.reread(_unlock);
continue;
}
if (lDit == codditta && lDip == coddip)
{
bRimossoA3 = TRUE;
qa3.remove();
}
}
// Cancella quadro B
items = ADCalcolaItems(LF_QUAB, codditta, coddip);
TProgind progB(items,"Cancellazione quadro B", FALSE,TRUE);
TLocalisamfile qb(LF_QUAB);
qb.zero();
qb.put("CODDITTA", (long) codditta);
qb.put("CODDIP", (long) coddip);
TRectype dep4(qb.curr());
for (qb.read(_isgteq, _lock); !qb.eof(); qb.next(_lock))
{
progB.addstatus(1);
if (qb.curr() > dep4)
{
qb.reread(_unlock);
break;
}
const long lDit = qb.get_long("CODDITTA");
const long lDip = qb.get_long("CODDIP");
if (lDit == codditta && lDip == coddip)
{
bRimossoB = TRUE;
qb.remove();
}
}
// Cancella quadro B1
items = ADCalcolaItems(LF_QUAB1, codditta, coddip);
TProgind progB1(items,"Cancellazione quadro B-1", FALSE,TRUE);
TLocalisamfile qb1(LF_QUAB1);
qb1.zero();
qb1.put("CODDITTA", (long) codditta);
qb1.put("CODDIP", (long) coddip);
TRectype dep5(qb1.curr());
for (qb1.read(_isgteq, _lock); !qb1.eof(); qb1.next(_lock))
{
progB1.addstatus(1);
if (qb1.curr() > dep5)
{
qb1.reread(_unlock);
break;
}
const long lDit = qb1.get_long("CODDITTA");
const long lDip = qb1.get_long("CODDIP");
if (lDit == codditta && lDip == coddip)
{
bRimossoB1 = TRUE;
qb1.remove();
}
}
if (bRimossoA)
_rip.set("A");
if (bRimossoA1)
_rip.set("A1");
if (bRimossoA2)
_rip.set("A2");
if (bRimossoA3)
_rip.set("A3");
if (bRimossoB)
_rip.set("B");
if (bRimossoB1)
_rip.set("B1");
}
bool TGenericRel_application::remove()
{
_registra = TRUE;
_registra = TRUE;
if (Dipendenti())
{
const long codditta = _codditta;
const long coddip = _lCodDip;
// Se era un erede resetta il riferimento al deceduto..
if (_sQualificaPrec != "" && _sQualificaPrec == QUALIFICA_EREDE)
{
if (_lCodDipDec > 0L)
if (!riscrivi_erede(codditta, _lCodDipDec, coddip,0L))
return warning_box("Fallita cancellazione erede");
}
// Se era un deceduto cancella cod.dip.dec. sugli eredi
if (is_deceduto(codditta,coddip))
{
TLocalisamfile dip (LF_DIPEND);
TProgind ProgDip(dip.items(),"Cancellazione codice deceduto ..", FALSE,TRUE);
for (dip.first(); !dip.eof(); dip.next(_lock))
{
ProgDip.addstatus(1);
const long lDipDec = dip.get_long(DIP_CODDIPDEC);
if (lDipDec == coddip)
{
dip.put(DIP_CODDIPDEC, 0L);
dip.rewrite();
}
else
dip.reread(_unlock);
}
}
// Cancella tutti i quadri che facevano riferimento a questo dip.
ADCancellaQuadri(codditta,coddip);
}
return TRelation_application::remove();
}
@ -235,7 +460,11 @@ void TGenericRel_application::init_modify_mode(TMask& m)
{
init_mask(m);
if (Dipendenti())
_lCodDipDec = m.get_long(ADF_CODDIPDEC);
{
_lCodDip = m.get_long(ADF_DIP_CODDIP);
_lCodDipDec = m.get_long(ADF_CODDIPDEC);
_sQualificaPrec = m.get(F_DIP_QUALIFICA);
}
}
void TGenericRel_application::init_insert_mode(TMask& m)
@ -245,6 +474,12 @@ void TGenericRel_application::init_insert_mode(TMask& m)
void TGenericRel_application::init_query_mode(TMask& m)
{
if (Dipendenti())
{
_lCodDipDec = 0L;
_sQualificaPrec = "";
}
if (_num == LF_SOCTRASF || _num == LF_BASEBIS)
{
socbbis_setta_ditta(m);
@ -342,14 +577,30 @@ bool TGenericRel_application::ADabilita_coddipdec(TMask_field& f, KEY k)
{
TMask& m = f.mask();
TString qual(f.get());
if (qual == "11")
if (qual == QUALIFICA_EREDE)
m.enable(ADF_CODDIPDEC);
else
m.disable(ADF_CODDIPDEC);
else
{
// Se prima era un erede e ora non lo e' piu' aggiorna il deceduto (brr..)
if (app()._sQualificaPrec != "" &&
app()._sQualificaPrec == QUALIFICA_EREDE)
{
const long codditta = app()._codditta;
const long coddip = m.get_long(ADF_DIP_CODDIP);
const long lDecedutoPrec = m.get_long(ADF_CODDIPDEC);
if (lDecedutoPrec > 0L)
if (!riscrivi_erede(codditta, lDecedutoPrec,coddip,0L))
return warning_box("Fallita cancellazione erede");
}
m.reset(ADF_CODDIPDEC);
m.disable(ADF_CODDIPDEC);
}
}
return TRUE;
}
const char* FALLITO_EREDE_MSG = "Impossibile inserire un nuovo erede. Il numero massimo di eredi e' 10";
bool TGenericRel_application::ADCodDipDec(TMask_field& f, KEY k)
{
if (k == K_ENTER)
@ -374,23 +625,24 @@ bool TGenericRel_application::ADCodDipDec(TMask_field& f, KEY k)
{
// Cancella l'erede nel rec.del dec. precedente
if (!riscrivi_erede(codditta, lDecedutoOriginario,coddip,0L))
return warning_box("Fallita cancellazione erede");
return warning_box("Impossibile cancellare il codice erede nella scheda del dipendente deceduto");
// Scrive l'erede nel rec.del dec. attuale
if (lDecedutoCorrente != 0L)
if (!scrivi_erede(codditta, lDecedutoCorrente, coddip))
return warning_box("Fallita scrittura codice erede su deceduto");
return warning_box(FALLITO_EREDE_MSG);
}
else
if (lDecedutoCorrente != 0L)
{
if (!scrivi_erede(codditta, lDecedutoCorrente, coddip))
return warning_box("Fallita scrittura codice erede su deceduto");
return warning_box(FALLITO_EREDE_MSG);
app()._lCodDipDec = lDecedutoCorrente;
}
}
return TRUE;
}
/*
bool TGenericRel_application::eredi_handler(TMask_field& f, KEY k)
{
if (k == K_TAB || k == K_SPACE)
@ -426,7 +678,8 @@ bool TGenericRel_application::eredi_handler(TMask_field& f, KEY k)
}
}
return TRUE;
}
}
*/
bool TGenericRel_application::date_handler(TMask_field& f, KEY k)
{

View File

@ -3,6 +3,7 @@
#include <urldefid.h>
#include <tabutil.h>
#include <config.h>
#include "dipend.h"
#include "774200.h"
#include "77lib.h"
#include "quadrob.h"
@ -10,9 +11,6 @@
#include "77qb.h"
#include "77qb1.h"
#define CODDITTA77 181
#define ANNODIC77 182
class TQuadriBB1_application : public TRelation_application
{
static bool codditta77_handler (TMask_field& m, KEY k);
@ -22,6 +20,7 @@ class TQuadriBB1_application : public TRelation_application
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
@ -41,6 +40,9 @@ class TQuadriBB1_application : public TRelation_application
bool EsisteGiaCodDip(const TMask& m);
bool EsisteGiaRecordDip(const TMask& m);
long _codditta;
long _lCodDip;
int _iNprog;
TString _sCognome, _sNome;
void init_mask(TMask&);
protected:
@ -136,37 +138,41 @@ TMask* TQuadriBB1_application::load_mask(int n)
TMask* m = new TMask(name);
m->set_handler(CODDITTA77, codditta77_handler);
if (QuadroB())
m->set_handler(QBF_CODDIP, CodDipHandler);
else
m->set_handler(QB1F_CODDIP, CodDipHandler);
m->set_handler(QuadroB() ? QBF_NPROG : QB1F_NPROG, NprogExitHandler);
switch (n)
{
case 0:
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);
set_search_field(QBF_QUAB_CODDIP);
}
else
set_search_field(QB1F_ANADIP_CODDIP);
m->set_handler(QBF_INDEN7494, QBTotIndennHandler);
}
m->disable(DLG_FINDREC);
break;
default:
break;
}
m->disable(DLG_FINDREC);
return _msk[n] = m;
}
@ -184,7 +190,7 @@ void TQuadriBB1_application::on_config_change()
bool TQuadriBB1_application::user_create()
{
_registra = FALSE;
_rel = new TRelation(_num);
_rel = new TRelation(_num);
_codditta = get_firm_770();
return TRUE;
}
@ -215,16 +221,16 @@ bool TQuadriBB1_application::EsisteGiaCodDip(const TMask& m)
q.zero();
q.put(QB_CODDITTA, _codditta);
q.put(QB_CODDIP, codip);
TRectype dep(q.curr());
q.read(_isgteq);
return q.curr() == dep;
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);
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();
@ -232,7 +238,8 @@ bool TQuadriBB1_application::EsisteGiaRecordDip(const TMask& m)
q.put(QB_CODDIP, codip);
q.put(QB_NPROG, nprog);
TRectype dep(q.curr());
return q.read() == NOERR;
const bool bEq = q.read() == NOERR;
return bEq;
}
int TQuadriBB1_application::rewrite(const TMask& m)
@ -242,21 +249,18 @@ int TQuadriBB1_application::rewrite(const TMask& m)
_registra = err == NOERR;
return err;
}
/*
int TQuadriBB1_application::read(TMask& m)
{
int err;
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);
err = q.read();
_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)
{
@ -283,10 +287,10 @@ void TQuadriBB1_application::init_mask(TMask& m)
const long codip = m.get_long(QBF_CODDIP);
if (codip==0L)
return;
if (is_erede(codditta,codip))
if (is_erede(codditta,codip) && modifica(m))
{
m.disable(-GROUP_ALL); // Disabilita tutti i campi
m.enable(-GROUP_EREDE); // Abilita solo quelli giusti
m.disable(-GROUP_ALL);
m.enable(-GROUP_EREDE);
}
else
{
@ -301,7 +305,22 @@ void TQuadriBB1_application::init_mask(TMask& m)
void TQuadriBB1_application::init_modify_mode(TMask& m)
{
init_mask(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)
@ -311,11 +330,33 @@ void TQuadriBB1_application::init_insert_mode(TMask& m)
void TQuadriBB1_application::init_query_mode(TMask& m)
{
m.set(ANNODIC77, _anno_dic);
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_ANADIP); // group 2 Nasconde QUADROB
m.send_key(K_SHIFT+K_CTRL+'s', -QBG_QUADROB); // group 1 Ricerca su ANAGR.DIPENDENTI
}
else
{
m.send_key(K_SHIFT+K_CTRL+'h', -QB1G_ANADIP); // group 2 Nasconde QUADROB
m.send_key(K_SHIFT+K_CTRL+'s', -QB1G_QUADROB); // group 1 Ricerca su ANAGR.DIPENDENTI
}
}
bool TQuadriBB1_application::codditta77_handler(TMask_field& f, KEY k)
{
@ -362,7 +403,17 @@ bool TQuadriBB1_application::CodDipHandler(TMask_field& f, KEY k)
{
TMask& m = f.mask();
if (!m.is_running()) return TRUE;
// if (k == K_TAB && ricerca(m))
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());
@ -377,6 +428,34 @@ bool TQuadriBB1_application::CodDipHandler(TMask_field& f, KEY k)
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();
@ -388,21 +467,26 @@ bool TQuadriBB1_application::NprogExitHandler(TMask_field& f, KEY k)
if (nprog.not_empty())
{
const int ID_CODDIP = app().QuadroB()? QBF_CODDIP : QB1F_CODDIP;
// Controlla che esista il dipendente
const long codip = m.get_long(ID_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;
if (!esiste_dipendente(codditta, codip))
return f.warning_box("Dipendente inesistente");
// 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);
}
}
@ -416,24 +500,27 @@ bool TQuadriBB1_application::PrimoNprogLibero(TMask& m, const long codditta, con
{
long nprog = 0L;
const int id_nprog = app().QuadroB() ? QBF_NPROG : QB1F_NPROG;
const bool erede = is_erede(codditta,codip);
bool EsisteGiaDip = FALSE;
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());
for (qb.read(_isgteq); !qb.eof(); qb.next())
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) )
(app().QuadroB() && !erede) )
nprog++;
TString16 nprog_str; nprog_str << nprog;

View File

@ -1,7 +1,7 @@
// Mod.770 - Quadro A
#define QUA_CODDITTA "CODDITTA"
#define QUA_CODIP "CODIP"
#define QUA_CODIP "CODDIP"
#define QUA_NPROG "NPROG"
#define QUA_AREAATT "AREAATT"
#define QUA_TIPO "TIPO"

View File

@ -2,7 +2,7 @@
#define QA3_CODDITTA "CODDITTA"
#define QA3_NPROG "NPROG"
#define QA3_CODIP "CODIP"
#define QA3_CODIP "CODDIP"
#define QA3_DIRAPTI "DIRAPTI"
#define QA3_NGINC15 "NGINC15"
#define QA3_REDCOR16 "REDCOR16"