Gestione C.U. 2015

git-svn-id: svn://10.65.10.50/branches/R_10_00@23057 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2015-03-31 06:18:02 +00:00
parent 9ca7526e5a
commit 8d59b4ec1e
10 changed files with 120 additions and 84 deletions

View File

@ -1425,7 +1425,7 @@ bool TSchedaPercipienti::activate_pag_sheet(TMask& m)
int prev_col = num_sheet_column() + 1; int prev_col = num_sheet_column() + 1;
// leggo codice quadro // leggo codice quadro
TString16 qua(m.get(F_CODQUA)); const TString& qua = m.get(F_CODQUA);
// abilito sheet // abilito sheet
TSheet_field& curr_s = enable_pag_sheet(m, qua); TSheet_field& curr_s = enable_pag_sheet(m, qua);
@ -1516,14 +1516,14 @@ int TSchedaPercipienti::token_pos(const char* t) const
return columns.get_pos(t); return columns.get_pos(t);
} }
int TSchedaPercipienti::token_dlg(const char* t) const short TSchedaPercipienti::token_dlg(const char* t) const
{ {
// reperisco la Token_string pilota // reperisco la Token_string pilota
TToken_string columns(pilot_sheet()); TToken_string columns(pilot_sheet());
// ritorno l'identificatore del token richiesto // ritorno l'identificatore del token richiesto
int dlg = columns.get_pos(t); short dlg = columns.get_pos(t);
if (dlg != -1) if (dlg >= 0)
dlg += 101; dlg += 101;
return dlg; return dlg;
} }
@ -1534,12 +1534,12 @@ const char* TSchedaPercipienti::pilot_sheet() const
TSheet_field& s = pag_sheet_enabled(TheMask()); TSheet_field& s = pag_sheet_enabled(TheMask());
// individuo la testata giusta // individuo la testata giusta
char* columns; const char* columns = NULL;
int dlg = s.dlg(); int dlg = s.dlg();
switch(dlg) switch(dlg)
{ {
case F_PAGAMENTI_C : columns = (char*)PILOT_SHEET[0]; break; case F_PAGAMENTI_C : columns = PILOT_SHEET[0]; break;
case F_PAGAMENTI_D : columns = (char*)PILOT_SHEET[1]; break; case F_PAGAMENTI_D : columns = PILOT_SHEET[1]; break;
// esistevano nel vecchio caso // esistevano nel vecchio caso
// case F_PAGAMENTI_DB : columns = (char*)PILOT_SHEET[2]; break; // case F_PAGAMENTI_DB : columns = (char*)PILOT_SHEET[2]; break;
// case F_PAGAMENTI_G : columns = (char*)PILOT_SHEET[3]; break; // case F_PAGAMENTI_G : columns = (char*)PILOT_SHEET[3]; break;
@ -1832,7 +1832,7 @@ void TSchedaPercipienti::from_struct_to_sheet(const Pag_struct& s, TToken_string
t.add(s.numreg, pos); t.add(s.numreg, pos);
} }
Pag_struct& TSchedaPercipienti::from_mask_to_struct(TMask& m, Pag_struct& s) Pag_struct& TSchedaPercipienti::from_mask_to_struct(const TMask& m, Pag_struct& s) const
{ {
// reperisco la Token_string pilota // reperisco la Token_string pilota
TToken_string columns(pilot_sheet()); TToken_string columns(pilot_sheet());
@ -1966,7 +1966,7 @@ Pag_struct& TSchedaPercipienti::from_mask_to_struct(TMask& m, Pag_struct& s)
return s; return s;
} }
void TSchedaPercipienti::from_struct_to_mask(Pag_struct& s, TMask& m) void TSchedaPercipienti::from_struct_to_mask(const Pag_struct& s, TMask& m) const
{ {
// reperisco la Token_string pilota // reperisco la Token_string pilota
TToken_string columns(pilot_sheet()); TToken_string columns(pilot_sheet());

View File

@ -772,12 +772,14 @@ bool TSchedaPercipienti::pag_standard_handler(TMask_field& f, KEY k)
static Pag_struct s; static Pag_struct s;
static Pag_struct c; static Pag_struct c;
static Pag_struct nullpag; static Pag_struct nullpag;
app().clear_struct(nullpag);
const TSchedaPercipienti& a = app();
a.clear_struct(nullpag);
// reperisco dati documento // reperisco dati documento
TMask& mm = app().curr_mask(); TMask& mm = a.curr_mask();
const bool d_forzatura = mm.get_bool(F_FORCED); const bool d_forzatura = mm.get_bool(F_FORCED);
TString16 d_codqua(mm.get(F_CODQUA)); const TString& d_codqua = mm.get(F_CODQUA);
// eseguo calcolo solo per K_TAB (singolo campo), // eseguo calcolo solo per K_TAB (singolo campo),
// oppure per K_ENTER, ma solo per il primo campo, // oppure per K_ENTER, ma solo per il primo campo,
@ -796,16 +798,16 @@ bool TSchedaPercipienti::pag_standard_handler(TMask_field& f, KEY k)
const real h_PercCommitInps = mm.get_real(F_PERC_COMMIT_INPS); const real h_PercCommitInps = mm.get_real(F_PERC_COMMIT_INPS);
// inizializzo struttura calcolati // inizializzo struttura calcolati
app().clear_struct(c); a.clear_struct(c);
// riempimento struttura pagamento // riempimento struttura pagamento
app().from_mask_to_struct(f.mask(), s); a.from_mask_to_struct(f.mask(), s);
// non proseguo se riga vuota // non proseguo se riga identica
if (s == c) return true; if (s == c) return true;
// richiamo calcolo di riga // richiamo calcolo di riga
app().calcola_riga_pag(s, a.calcola_riga_pag(s,
c, c,
FALSE, FALSE,
h_PercAssImp, h_PercAssImp,
@ -816,8 +818,7 @@ bool TSchedaPercipienti::pag_standard_handler(TMask_field& f, KEY k)
h_PercCommitInps); h_PercCommitInps);
// riporto valori a maschera // riporto valori a maschera
app().from_struct_to_mask(s, f.mask()); a.from_struct_to_mask(s, f.mask());
} }

View File

@ -128,7 +128,7 @@ class TSchedaPercipienti : public TRelation_application
// ritorna la posizione del Token t all'interno dello sheet attivo // ritorna la posizione del Token t all'interno dello sheet attivo
int token_pos(const char* t) const; int token_pos(const char* t) const;
// ritorna l'identificatore del Token t all'interno dello sheet attivo // ritorna l'identificatore del Token t all'interno dello sheet attivo
int token_dlg(const char* t) const; short token_dlg(const char* t) const;
// ritorna la Token_string pilota dello sheet attivo // ritorna la Token_string pilota dello sheet attivo
const char* pilot_sheet() const; const char* pilot_sheet() const;
// riempe la struttura pagamento da una riga di sheet // riempe la struttura pagamento da una riga di sheet
@ -136,9 +136,9 @@ class TSchedaPercipienti : public TRelation_application
// riempe una riga di sheet dalla struttura pagamento // riempe una riga di sheet dalla struttura pagamento
void from_struct_to_sheet(const Pag_struct& s, TToken_string& t); void from_struct_to_sheet(const Pag_struct& s, TToken_string& t);
// riempe la struttura pagamento dalla maschera di sheet // riempe la struttura pagamento dalla maschera di sheet
Pag_struct& from_mask_to_struct(TMask& m, Pag_struct& s); Pag_struct& from_mask_to_struct(const TMask& m, Pag_struct& s) const;
// riempe la maschera di sheet dalla struttura pagamento // riempe la maschera di sheet dalla struttura pagamento
void from_struct_to_mask(Pag_struct& s, TMask& m); void from_struct_to_mask(const Pag_struct& s, TMask& m) const;
// abilita lo sheet pagamenti in base al quadro // abilita lo sheet pagamenti in base al quadro
TSheet_field& enable_pag_sheet(TMask& m, const TString& quadro) const; TSheet_field& enable_pag_sheet(TMask& m, const TString& quadro) const;
// aggancia handler allo sheet passato // aggancia handler allo sheet passato

View File

@ -11,6 +11,7 @@
#define F_RIGHE 107 #define F_RIGHE 107
#define H_CODANAGR 114 #define H_CODANAGR 114
#define H_RAGSOC 116 #define H_RAGSOC 116
#define F_COFI 117
#define F_GENERA 201 #define F_GENERA 201
#define F_PROSPETTO 202 #define F_PROSPETTO 202

View File

@ -8,12 +8,12 @@ PAGE "Riepilogo LA" -1 -1 78 18
GROUPBOX DLG_NULL 78 5 GROUPBOX DLG_NULL 78 5
BEGIN BEGIN
PROMPT 1 1 "Percipiente" PROMPT 1 0 "Percipiente"
END END
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
PROMPT 4 2 "Ditta " PROMPT 4 1 "Ditta "
USE LF_NDITTE USE LF_NDITTE
INPUT CODDITTA F_CODDITTA INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGDITTA RAGSOC OUTPUT F_RAGDITTA RAGSOC
@ -25,7 +25,7 @@ END
STRING F_RAGDITTA 50 STRING F_RAGDITTA 50
BEGIN BEGIN
PROMPT 24 2 "" PROMPT 24 1 ""
FLAGS "D" FLAGS "D"
END END
@ -40,7 +40,7 @@ END
LIST F_TIPOA 1 17 LIST F_TIPOA 1 17
BEGIN BEGIN
PROMPT 4 3 "Tipo percipiente " PROMPT 4 2 "Tipo percipiente "
FIELD TIPOA FIELD TIPOA
ITEM "F|Persona Fisica" ITEM "F|Persona Fisica"
ITEM "G|Persona Giuridica" ITEM "G|Persona Giuridica"
@ -49,7 +49,7 @@ END
NUMBER F_CODANAGR 5 NUMBER F_CODANAGR 5
BEGIN BEGIN
PROMPT 4 4 "Codice " PROMPT 4 3 "Codice "
FIELD CODANAGR FIELD CODANAGR
KEY 1 KEY 1
USE LF_QUALA SELECT NPROG=1 USE LF_QUALA SELECT NPROG=1
@ -63,13 +63,39 @@ BEGIN
DISPLAY "Codice Fiscale@16" LF_ANAG->COFI DISPLAY "Codice Fiscale@16" LF_ANAG->COFI
DISPLAY "Partita IVA@13" LF_ANAG->PAIV DISPLAY "Partita IVA@13" LF_ANAG->PAIV
OUTPUT F_CODANAGR CODANAGR OUTPUT F_CODANAGR CODANAGR
OUTPUT F_RAGSOC LF_ANAG->RAGSOC
OUTPUT F_COFI LF_ANAG->COFI
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_COFI 16
BEGIN
PROMPT 53 2 "C.F. "
USE LF_ANAG KEY 3 SELECT LF_QUALA->NPROG>0
JOIN LF_QUALA INTO CODDITTA=#F_CODDITTA TIPOA=TIPOA CODANAGR=CODANAGR
INPUT TIPOA F_TIPOA SELECT
INPUT COFI F_COFI
DISPLAY "Codice Fiscale@16" LF_ANAG->COFI
DISPLAY "Denominazione@50" LF_ANAG->RAGSOC
DISPLAY "Partita IVA@13" LF_ANAG->PAIV
DISPLAY "Codice" CODANAGR
COPY OUTPUT F_CODANAGR
CHECKTYPE NORMAL
END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 24 4 "" PROMPT 24 3 ""
FLAGS "D" USE LF_ANAG KEY 2 SELECT LF_QUALA->NPROG>0
JOIN LF_QUALA INTO CODDITTA=#F_CODDITTA TIPOA=TIPOA CODANAGR=CODANAGR
INPUT TIPOA F_TIPOA SELECT
INPUT RAGSOC F_RAGSOC
DISPLAY "Denominazione@50" RAGSOC
DISPLAY "Codice Fiscale@16" LF_ANAG->COFI
DISPLAY "Partita IVA@13" LF_ANAG->PAIV
DISPLAY "Codice" CODANAGR
COPY OUTPUT F_CODANAGR
CHECKTYPE SEARCH
END END
NUMBER H_CODANAGR 5 NUMBER H_CODANAGR 5
@ -92,12 +118,12 @@ END
BUTTON F_GENERA 24 1 BUTTON F_GENERA 24 1
BEGIN BEGIN
PROMPT 2 6 "~Generazione da schede" PROMPT 2 5 "~Generazione da schede"
END END
SPREADSHEET F_RIGHE SPREADSHEET F_RIGHE
BEGIN BEGIN
PROMPT 0 7 "" PROMPT 0 6 ""
ITEM "Cod.\ncau.@4" ITEM "Cod.\ncau.@4"
ITEM "Aliq." ITEM "Aliq."
ITEM "Cau." ITEM "Cau."
@ -150,7 +176,7 @@ BEGIN
FIELD PERC FIELD PERC
END END
STRING 103 1 STRING 103 2
BEGIN BEGIN
PROMPT 1 2 "Causale " PROMPT 1 2 "Causale "
FLAGS "U" FLAGS "U"
@ -166,8 +192,12 @@ BEGIN
ITEM "H|Idennita' corrisposte per la cessazione dei rapporti di agenzia delle persone fisiche" ITEM "H|Idennita' corrisposte per la cessazione dei rapporti di agenzia delle persone fisiche"
ITEM "I|Idennita' corrisposte per la cessazione da funzionari notarili" ITEM "I|Idennita' corrisposte per la cessazione da funzionari notarili"
ITEM "L|Utilizzaz. economica, da parte di sogg. diverso dall'autore o dall'inventore, di opere dell'ingegno, di brevetti industiali e di processi, formule e informaz. relativi ad esperienze acquisite in campo industriale, commerciale, scientifico" ITEM "L|Utilizzaz. economica, da parte di sogg. diverso dall'autore o dall'inventore, di opere dell'ingegno, di brevetti industiali e di processi, formule e informaz. relativi ad esperienze acquisite in campo industriale, commerciale, scientifico"
ITEM "L1|Redditi derivanti dallutilizzazione economica di opere dellingegno, di brevetti industriali e di processi, formule e informazioni relativi a esperienze acquisite in campo industriale, commerciale o scientifico, che sono percepiti da soggetti che abbiano acquistato a titolo oneroso i diritti alla loro utilizzazione"
ITEM "M|Prestazioni di lavoro autonomo non esercitate abitualmente" ITEM "M|Prestazioni di lavoro autonomo non esercitate abitualmente"
ITEM "M1|Redditi derivanti dallassunzione di obblighi di fare, di non fare o permettere"
ITEM "N|Idennita' di trasferta, rinborso forfetario di spese, premi e compensi erogati nell' esercizio diretto di attivita' sportiva dilettantistiche" ITEM "N|Idennita' di trasferta, rinborso forfetario di spese, premi e compensi erogati nell' esercizio diretto di attivita' sportiva dilettantistiche"
ITEM "O|Prestazioni di lavoro autonomo non esercitate abitualmente, per le quali non sussiste lobbligo di iscrizione alla gestione separata"
ITEM "O1|Redditi derivanti dallassunzione di obblighi di fare, di non fare o permettere, per le quali non sussiste lobbligo di iscrizione alla gestione separata (Circ. INPS n. 104/2001)"
ITEM "P|Prestazioni in forma di capitale e riscatti erogati dalle forme di previdenza complementare di cui al D.Lgs 21 aprile 1993,n. 124 e sucessive modificazioni a lavoratori autonomi e imprenditori individuali" ITEM "P|Prestazioni in forma di capitale e riscatti erogati dalle forme di previdenza complementare di cui al D.Lgs 21 aprile 1993,n. 124 e sucessive modificazioni a lavoratori autonomi e imprenditori individuali"
ITEM "Q|Provvigioni corrisposte ad agente o rappresentante di commercio monomandatario" ITEM "Q|Provvigioni corrisposte ad agente o rappresentante di commercio monomandatario"
ITEM "R|Provvigioni corrisposte ad agente o rappresentante plurimandatario" ITEM "R|Provvigioni corrisposte ad agente o rappresentante plurimandatario"
@ -175,7 +205,10 @@ BEGIN
ITEM "T|Provvigioni corrisposte a mediatore" ITEM "T|Provvigioni corrisposte a mediatore"
ITEM "U|Provvigioni corrisposte a procacciatore di affari" ITEM "U|Provvigioni corrisposte a procacciatore di affari"
ITEM "V|Provvigioni corrisposte a incaricato per le vendite a domicilio" ITEM "V|Provvigioni corrisposte a incaricato per le vendite a domicilio"
ITEM "V1|redditi derivanti da attività commerciali non esercitate abitualmente (ad esempio, provvigioni corrisposte per prestazioni occasionali ad agente o rappresentante di commercio, mediatore, procacciatore daffari o incaricato per le vendite a domicilio)"
ITEM "W|Provvigioni corrisposte a incaricato per la vendita porta a porta e per la vendita ambulante di giornali quotidiani e periodici (L. 25 febbraio 1987, n. 67)" ITEM "W|Provvigioni corrisposte a incaricato per la vendita porta a porta e per la vendita ambulante di giornali quotidiani e periodici (L. 25 febbraio 1987, n. 67)"
ITEM "X|Canoni corrisposti nel 2004 da società o enti residenti ovvero da stabili organizzazioni di società estere"
ITEM "Y|Canoni corrisposti dal 1° gennaio 2005 al 26 luglio 2005 da società o enti residenti ovvero da stabili organizzazioni di società estere"
ITEM "Z|Titolo diverso dai precedenti" ITEM "Z|Titolo diverso dai precedenti"
OUTPUT 103 OUTPUT 103
WANING "La causale deve essere compresa tra A ed Z" WANING "La causale deve essere compresa tra A ed Z"

View File

@ -476,28 +476,21 @@ void TTrasferimentoCU::set_operazione(char t, const TString& iden)
TRecnotype TTrasferimentoCU::conta_certificazioni() const TRecnotype TTrasferimentoCU::conta_certificazioni() const
{ {
int anno = _anno; int anno = _anno;
if (anno < 2010) if (anno < 2014)
anno = 2014; anno = 2014;
TString query; TString query;
if (_anagiu)
query.format("USE %d SELECT ANNO=%d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld", query.format("USE %d SELECT ANNO=%d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld",
LF_QUALA, anno, _cod_ditta, _cod_ditta); LF_QUALA, anno, _cod_ditta, _cod_ditta);
else
query.format("USE %d SELECT (ANNO=%d)&&(TIPOA=\"F\")\nFROM CODDITTA=%ld\nTO CODDITTA=%ld",
LF_QUALA, anno, _cod_ditta, _cod_ditta);
TRecnotype nc = 0; TRecnotype nc = 0;
TISAM_recordset recset(query); TISAM_recordset recset(query);
long last_cod = 0;
for (bool ok = recset.move_first(); ok; ok = recset.move_next()) for (bool ok = recset.move_first(); ok; ok = recset.move_next())
{ {
const char tipoanag = recset.get("TIPO").as_string()[0];
const long codanagr = recset.get("CODANAGR").as_int(); const long codanagr = recset.get("CODANAGR").as_int();
if (codanagr > 0 && codanagr != last_cod) if (tipoanag >= 'F' && codanagr > 0)
{
nc++; nc++;
last_cod = codanagr;
}
} }
CHECKD(nc <= recset.items(), "Numero certificazioni errato:", nc); CHECKD(nc <= recset.items(), "Numero certificazioni errato:", nc);
return nc; return nc;
@ -539,7 +532,6 @@ bool TTrasferimentoCU::append_record_b()
rec.set(19, rec_nditte.get(NDT_CARRAPP)); rec.set(19, rec_nditte.get(NDT_CARRAPP));
rec.set(20, rapp.cognome().left(24)); rec.set(20, rapp.cognome().left(24));
rec.set(21, rapp.nome()); rec.set(21, rapp.nome());
rec.set(22, _codfis_dic);
} }
else else
{ {
@ -567,7 +559,7 @@ bool TTrasferimentoCU::append_record_d(const TRectype& qla, TLog_report& log)
{ {
const char tipoanag = qla.get_char("TIPOA"); const char tipoanag = qla.get_char("TIPOA");
const long codanagr = qla.get_long("CODANAGR"); const long codanagr = qla.get_long("CODANAGR");
if ((tipoanag != 'F' && !_anagiu) || codanagr <= 0) if (tipoanag < 'F' || codanagr <= 0)
{ {
TString msg; msg.format(FR("Scartato percipiente non valido %c/%ld"), tipoanag, codanagr); TString msg; msg.format(FR("Scartato percipiente non valido %c/%ld"), tipoanag, codanagr);
log.log(2, msg); log.log(2, msg);
@ -661,21 +653,18 @@ bool TTrasferimentoCU::append_record_d(const TRectype& qla, TLog_report& log)
rec.np_put("DA002043", perc.stato_estero_UNICO()); rec.np_put("DA002043", perc.stato_estero_UNICO());
} }
rec.np_put("DA003001", TDate(TODAY)); rec.np_put("DA003001", _data_tra);
rec.np_put("DA003002", true); rec.np_put("DA003002", true);
_data.add(rec); _data.add(rec);
return true; return true;
} }
bool TTrasferimentoCU::append_record_h(const TRectype& qla, int modulo, TLog_report& log) bool TTrasferimentoCU::append_record_h(const TRectype& qla, TLog_report& log)
{ {
const char tipoanag = qla.get_char("TIPOA"); const char tipoanag = qla.get_char("TIPOA");
if (tipoanag != 'F')
int cazzone = 1;
const long codanagr = qla.get_long("CODANAGR"); const long codanagr = qla.get_long("CODANAGR");
if ((tipoanag != 'F' && !_anagiu) || codanagr <= 0) if (tipoanag < 'F' && codanagr <= 0)
{ {
TString msg; msg.format(FR("Scartato percipiente non valido %c/%ld"), tipoanag, codanagr); TString msg; msg.format(FR("Scartato percipiente non valido %c/%ld"), tipoanag, codanagr);
log.log(2, msg); log.log(2, msg);
@ -692,7 +681,7 @@ bool TTrasferimentoCU::append_record_h(const TRectype& qla, int modulo, TLog_rep
TRecordCU rec('H'); // Compila record H TRecordCU rec('H'); // Compila record H
rec.set(2, cod_fis_dic()); // Codice fiscale sostituto rec.set(2, cod_fis_dic()); // Codice fiscale sostituto
rec.set(3, modulo); // Progressivo modulo rec.set(3, 1L); // Progressivo modulo
rec.set(4, perc.codice_fiscale()); // Codice fiscale del percipiente rec.set(4, perc.codice_fiscale()); // Codice fiscale del percipiente
rec.set(5, _certificazione); // Progressivo certificazione rec.set(5, _certificazione); // Progressivo certificazione
@ -771,8 +760,8 @@ bool TTrasferimentoCU::split(const char* path)
TRecordCU rec; TRecordCU rec;
rec.tipo_record('A'); // Compila record di testata A rec.tipo_record('A'); // Compila record di testata A
rec.set(3, "CUR15"); // Codice fornitura rec.set(3, "CUR15"); // Codice fornitura
rec.set(4, 1); // Tipo fornitore 01 = Soggetto che invia la propria dichiarazione rec.set(4, 1); // Tipo fornitore: 01=Soggetto che invia la propria dichiarazione; 10=CAF
rec.set(5, cod_fis_dic()); // Codice fiscale del fornitore rec.set(5, _codfis_int.full() ? _codfis_int : cod_fis_dic()); // Codice fiscale del fornitore
outfile << rec; // Scrive record testata outfile << rec; // Scrive record testata
} }
@ -793,7 +782,7 @@ bool TTrasferimentoCU::split(const char* path)
if (written >= records_per_disk) if (written >= records_per_disk)
break; break;
if (!pi.addstatus(1)) if (!pi.add_status())
{ {
good = false; good = false;
break; break;
@ -826,12 +815,17 @@ void TTrasferimentoCU::remove()
} }
TTrasferimentoCU::TTrasferimentoCU(const char* path, char mode) TTrasferimentoCU::TTrasferimentoCU(const char* path, char mode)
: _save_headers(true), _anagiu(true), _data_imp(TODAY), _tipo_operazione(' ') : _save_headers(true), _data_imp(TODAY), _data_tra(TODAY), _tipo_operazione(' ')
{ {
if (mode == 'r') if (mode == 'r')
load(path); load(path);
else else
{
_name = path; _name = path;
while (_data_tra.month() > 2 || _data_tra.wday() > 5 || _data_tra.is_holiday())
--_data_tra;
}
} }
TTrasferimentoCU::~TTrasferimentoCU() TTrasferimentoCU::~TTrasferimentoCU()
@ -939,12 +933,9 @@ void TCU_app::main_loop()
t.read_codfis_dic(base); t.read_codfis_dic(base);
t.append_record_b(); t.append_record_b();
if (t.anagiu_included()) query.format("USE %d SELECT (ANNO=%d)\nBY TIPOA,CODANAGR,CAUSALE\nFROM CODDITTA=%ld\nTO CODDITTA=%ld",
query.format("USE %d SELECT (ANNO=%d)\nFROM CODDITTA=%ld\nTO CODDITTA=%ld",
LF_QUALA, anno, codditta, codditta);
else
query.format("USE %d SELECT (TIPOA=\"F\")&&(ANNO=%d)\nFROM CODDITTA=%ld\nTO CODDITTA=%ld",
LF_QUALA, anno, codditta, codditta); LF_QUALA, anno, codditta, codditta);
TISAM_recordset perc(query); TISAM_recordset perc(query);
const TRecnotype nperc = perc.items(); const TRecnotype nperc = perc.items();
if (nperc > 0) if (nperc > 0)
@ -952,18 +943,19 @@ void TCU_app::main_loop()
TProgress_monitor pp(nperc, TR("Generazione record percipienti")); TProgress_monitor pp(nperc, TR("Generazione record percipienti"));
const TRectype& rec = perc.cursor()->curr(); const TRectype& rec = perc.cursor()->curr();
long last_perc = 0; long last_perc = 0;
int modulo = 1; TString4 last_caus;
const int modulo = 1;
for (bool ok = perc.move_first(); ok; ok = perc.move_next()) for (bool ok = perc.move_first(); ok; ok = perc.move_next())
{ {
const long codanagr = rec.get_long("CODANAGR"); const long codanagr = rec.get_long("CODANAGR");
if (codanagr != last_perc) const TString4 codcaus = rec.get_long("CAUSALE");
if (codanagr != last_perc || codcaus != last_caus)
{ {
last_perc = codanagr; last_perc = codanagr;
last_caus = codcaus;
t.append_record_d(rec, log); t.append_record_d(rec, log);
modulo = 1;
} }
if (t.append_record_h(rec, modulo, log)) t.append_record_h(rec, log);
modulo++;
pp.add_status(); pp.add_status();
} }
} }

View File

@ -620,8 +620,10 @@ void TCU_report::create_B()
begin_paragraph(header, CU_AFTER_LAST, 6, "DATI RELATIVI AL RAPPRESENTANTE FIRMATARIO DELLA COMUNICAZIONE"); begin_paragraph(header, CU_AFTER_LAST, 6, "DATI RELATIVI AL RAPPRESENTANTE FIRMATARIO DELLA COMUNICAZIONE");
add_labeled_field(header, 0, 0, 24, "#18", "Codice Fiscale"); add_labeled_field(header, 0, 0, 24, "#18", "Codice Fiscale");
add_labeled_field(header, 0,32, 3, "#19", "Codice carica", 'C'); TReport_field& cc = add_labeled_field(header, 0,32, 3, "#19", "Codice carica", 'C');
add_gridded_field(header, 0,CU_ALIGN_RIGHT, 11, "#2", "Codice fiscale societŕ o ente dichiarante"); cc.set_type('N'); cc.hide_zeroes(true);
TReport_field& pi = add_gridded_field(header, 0,CU_ALIGN_RIGHT, 11, "#22", "Codice fiscale società o ente dichiarante");
pi.set_type('N'); pi.hide_zeroes(true);
add_labeled_field(header, 1, 0, 36, "#20", "Cognome"); add_labeled_field(header, 1, 0, 36, "#20", "Cognome");
add_labeled_field(header, 1,CU_AFTER_LAST, CU_ALIGN_RIGHT, "#21", "Nome"); add_labeled_field(header, 1,CU_AFTER_LAST, CU_ALIGN_RIGHT, "#21", "Nome");
end_paragraph(header); end_paragraph(header);
@ -764,7 +766,7 @@ void TCU_report::create_H()
const int tab0 = 2, tab1 = 6, tab2 = 27, tab3 = CU_ALIGN_RIGHT; const int tab0 = 2, tab1 = 6, tab2 = 27, tab3 = CU_ALIGN_RIGHT;
begin_paragraph(body, 10, 4, "DATI RELATIVI ALLE SOMME EROGATE\nTIPOLOGIA REDDITUALE", 0x3); begin_paragraph(body, 10, 4, "DATI RELATIVI ALLE SOMME EROGATE\nTIPOLOGIA REDDITUALE", 0x3);
add_labeled_field(body, 0, tab0, 1, "#AU001001", "Causale"); add_labeled_field(body, 0, tab0, 2, "#AU001001", "Causale");
end_paragraph(body); end_paragraph(body);
begin_paragraph(body, -1, 21, "DATI FISCALI"); begin_paragraph(body, -1, 21, "DATI FISCALI");

View File

@ -115,11 +115,11 @@ BEGIN
MESSAGE COPY,F_DESCR1,1,22 MESSAGE COPY,F_DESCR1,1,22
END END
STRING TCF_CAUSD 1 STRING TCF_CAUSD 2
BEGIN BEGIN
PROMPT 1 6 "Causale LA " PROMPT 1 6 "Causale LA "
FLAGS "U" FLAGS "U"
SHEET "Codice|Descrizione@250" SHEET "Codice|Descrizione@320"
INPUT TCF_CAUSD INPUT TCF_CAUSD
ITEM " | " ITEM " | "
ITEM "A|Prestazioni di lavoro autonomo rientranti nell'esercizio di arte o professione abituale" ITEM "A|Prestazioni di lavoro autonomo rientranti nell'esercizio di arte o professione abituale"
@ -132,8 +132,12 @@ BEGIN
ITEM "H|Idennita' corrisposte per la cessazione dei rapporti di agenzia delle persone fisiche" ITEM "H|Idennita' corrisposte per la cessazione dei rapporti di agenzia delle persone fisiche"
ITEM "I|Idennita' corrisposte per la cessazione da funzionari notarili" ITEM "I|Idennita' corrisposte per la cessazione da funzionari notarili"
ITEM "L|Utilizzaz. economica, da parte di sogg. diverso dall'autore o dall'inventore, di opere dell'ingegno, di brevetti industiali e di processi, formule e informaz. relativi ad esperienze acquisite in campo industriale, commerciale, scientifico" ITEM "L|Utilizzaz. economica, da parte di sogg. diverso dall'autore o dall'inventore, di opere dell'ingegno, di brevetti industiali e di processi, formule e informaz. relativi ad esperienze acquisite in campo industriale, commerciale, scientifico"
ITEM "L1|Redditi derivanti dallutilizzazione economica di opere dellingegno, di brevetti industriali e di processi, formule e informazioni relativi a esperienze acquisite in campo industriale, commerciale o scientifico, che sono percepiti da soggetti che abbiano acquistato a titolo oneroso i diritti alla loro utilizzazione"
ITEM "M|Prestazioni di lavoro autonomo non esercitate abitualmente" ITEM "M|Prestazioni di lavoro autonomo non esercitate abitualmente"
ITEM "M1|Redditi derivanti dallassunzione di obblighi di fare, di non fare o permettere"
ITEM "N|Idennita' di trasferta, rinborso forfetario di spese, premi e compensi erogati nell' esercizio diretto di attivita' sportiva dilettantistiche" ITEM "N|Idennita' di trasferta, rinborso forfetario di spese, premi e compensi erogati nell' esercizio diretto di attivita' sportiva dilettantistiche"
ITEM "O|Prestazioni di lavoro autonomo non esercitate abitualmente, per le quali non sussiste lobbligo di iscrizione alla gestione separata"
ITEM "O1|Redditi derivanti dallassunzione di obblighi di fare, di non fare o permettere, per le quali non sussiste lobbligo di iscrizione alla gestione separata (Circ. INPS n. 104/2001)"
ITEM "P|Prestazioni in forma di capitale e riscatti erogati dalle forme di previdenza complementare di cui al D.Lgs 21 aprile 1993,n. 124 e sucessive modificazioni a lavoratori autonomi e imprenditori individuali" ITEM "P|Prestazioni in forma di capitale e riscatti erogati dalle forme di previdenza complementare di cui al D.Lgs 21 aprile 1993,n. 124 e sucessive modificazioni a lavoratori autonomi e imprenditori individuali"
ITEM "Q|Provvigioni corrisposte ad agente o rappresentante di commercio monomandatario" ITEM "Q|Provvigioni corrisposte ad agente o rappresentante di commercio monomandatario"
ITEM "R|Provvigioni corrisposte ad agente o rappresentante plurimandatario" ITEM "R|Provvigioni corrisposte ad agente o rappresentante plurimandatario"
@ -141,7 +145,10 @@ BEGIN
ITEM "T|Provvigioni corrisposte a mediatore" ITEM "T|Provvigioni corrisposte a mediatore"
ITEM "U|Provvigioni corrisposte a procacciatore di affari" ITEM "U|Provvigioni corrisposte a procacciatore di affari"
ITEM "V|Provvigioni corrisposte a incaricato per le vendite a domicilio" ITEM "V|Provvigioni corrisposte a incaricato per le vendite a domicilio"
ITEM "V1|redditi derivanti da attività commerciali non esercitate abitualmente (ad esempio, provvigioni corrisposte per prestazioni occasionali ad agente o rappresentante di commercio, mediatore, procacciatore daffari o incaricato per le vendite a domicilio)"
ITEM "W|Provvigioni corrisposte a incaricato per la vendita porta a porta e per la vendita ambulante di giornali quotidiani e periodici (L. 25 febbraio 1987, n. 67)" ITEM "W|Provvigioni corrisposte a incaricato per la vendita porta a porta e per la vendita ambulante di giornali quotidiani e periodici (L. 25 febbraio 1987, n. 67)"
ITEM "X|Canoni corrisposti nel 2004 da società o enti residenti ovvero da stabili organizzazioni di società estere"
ITEM "Y|Canoni corrisposti dal 1° gennaio 2005 al 26 luglio 2005 da società o enti residenti ovvero da stabili organizzazioni di società estere"
ITEM "Z|Titolo diverso dai precedenti" ITEM "Z|Titolo diverso dai precedenti"
OUTPUT TCF_CAUSD OUTPUT TCF_CAUSD
OUTPUT TCF_CAUSD_DESCR OUTPUT TCF_CAUSD_DESCR
@ -155,9 +162,9 @@ BEGIN
GROUP GR_NOCAUE1 GROUP GR_NOCAUE1
END END
STRING TCF_CAUSD_DESCR 250 60 MEMO TCF_CAUSD_DESCR 56 4
BEGIN BEGIN
PROMPT 16 6 "" PROMPT 18 5 ""
FLAGS "D" FLAGS "D"
GROUP GR_CAUDD1 GROUP GR_CAUDD1
GROUP GR_NOCAUC GROUP GR_NOCAUC

View File

@ -1,3 +1,3 @@
144 144
1 1
m770/quadrola|0|0|247|0|Quadro LA 770||| m770/quadrola|0|0|248|0|Quadro LA 770|||

View File

@ -5,7 +5,7 @@ TIPOA|1|1|0|Tipo anagrafica (Sempre 'F')
CODANAGR|3|5|0|Codice anagrafica CODANAGR|3|5|0|Codice anagrafica
NPROG|2|4|0|Numero progressivo di riga NPROG|2|4|0|Numero progressivo di riga
CODCAUS|9|2|0|Codice causale CODCAUS|9|2|0|Codice causale
CAUSALE|1|1|0|Causale CAUSALE|1|2|0|Causale
ANNO|3|4|0|Anno ANNO|3|4|0|Anno
ANTICIPAZ|8|1|0|Anticipazione ANTICIPAZ|8|1|0|Anticipazione
TOTALE|4|18|3|Ammontare lordo corrisposto TOTALE|4|18|3|Ammontare lordo corrisposto