Errori corretti

git-svn-id: svn://10.65.10.50/trunk@1590 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1995-07-13 07:51:59 +00:00
parent 79c2bab453
commit 0303a5c42a
6 changed files with 5123 additions and 5128 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -94,35 +94,6 @@ bool CG4400_application::mask_azzera (TMask_field& f, KEY k)
return TRUE;
}
/*
bool CG4400_application::mask_firm_to (TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
TMask& m = f.mask();
const long from = m.get_long(DA_CODICE);
long to = m.get_long(A_CODICE);
if (from != 0 || to != 0)
{
TBit_array& sel = app()._selected;
if (to == 0) to = 99999;
for (int i = 0; i < app()._ditte->items(); i++)
{
TToken_string& d = app()._ditte->row(i);
const long cod = d.get_long(1);
if (cod >= from && cod <= to)
sel.set(i);
}
// m.reset(DA_CODICE);
// m.reset(A_CODICE);
const long numd = sel.ones();
f.mask().set(F_SELECT, numd);
}
}
return TRUE;
}
*/
bool CG4400_application::mask_tipo_stampa(TMask_field& f, KEY k)
{
TMask& m = f.mask();
@ -801,12 +772,18 @@ void CG4400_application::calcola_progressivi()
impo = cs.get(0);
impos = cs.get(1);
}
TToken_string fatt_rit (pim.get("S1"));
//se in sospensione d'imposta l'imponibile e l'iva li trovo in R11 e R12
if (_sosp_imposta) //in genere non sara' mai un corrispettivo
{
impo = pim.get_real("R11");
impos = pim.get_real("R12");
}
TToken_string fatt_rit (pim.get("S1")); //e' sempre un acquisto
real im (fatt_rit.get(0));
real is (fatt_rit.get(1));
impo += im;
impos += is;
implo += im+is;
implo += im+is; // potrei percio' ignorare l'importo lordo
if (impo != ZERO || impos != ZERO || implo != ZERO)
_tot_iva_array.add_riga(impo,impos,implo,ZERO,ZERO,ZERO,codiva);
if (_tipo_reg == 2) //registro acquisti
@ -849,6 +826,12 @@ void CG4400_application::calcola_progressivi()
impo = cs.get(0);
impos = cs.get(1);
}
//se in sospensione d'imposta l'imponibile e l'iva li trovo in R11 e R12
if (_sosp_imposta)
{
impo = pim.get_real("R11");
impos = pim.get_real("R12");
}
TToken_string fatt_rit (pim.get("S1"));
real im (fatt_rit.get(0));
real is (fatt_rit.get(1));
@ -1401,93 +1384,6 @@ int CG4400_application::stampa_acquisti(int row)
return rw;
}
/*
void CG4400_application::set_page_tot_reg()
{
TString16 codivaprec = "";
int row=0, rr=0;
rr = stampa_prospetto();
//if (_nrec > 0) //numero di records di rmoviva
if (_esiste_riga_iva && _stampa)
{
real tot_imponib, tot_imposta, tot_imponibp, tot_impostap, tot_lordo;
real dep_imponib, dep_imposta, dep_lordo;
tot_imponib = tot_imposta = tot_imponibp = tot_impostap = tot_lordo = ZERO;
dep_imponib = dep_imposta = dep_lordo = ZERO;
_tot_iva_array.sort(compare_rows); //viene ordinato per codice iva
for (int k = 0; k < _tot_iva_array.items(); k++)
{
TRiga& riga = (TRiga&)_tot_iva_array[k];
//row = rr+k;
if (codivaprec == "")
codivaprec = riga._codiva;
if (codivaprec != riga._codiva)
{
set_row(rr, "%3s", (const char*)codivaprec);
TString descr = descr_iva(codivaprec);
set_row(rr, "@5g%s",(const char*)descr);
if (dep_imponib != ZERO)
set_row(rr, "@25g%r", &dep_imponib);
if (dep_imposta != ZERO)
set_row(rr, "@41g%r", &dep_imposta);
if (dep_lordo != ZERO)
set_row(rr, "@61g%r", &dep_lordo);
}
rr++;
codivaprec = riga._codiva;
dep_imponib = dep_imposta = dep_lordo = ZERO;
}
if (riga._tipodoc == "FS")
{
real somma = -(riga._imponibile + riga._imposta);
dep_lordo += somma;
}
else if (riga._tipodoc == "CR" || riga._tipodoc == "RF" || riga._tipodoc == "SC")
{
dep_lordo += riga._imponibile + riga._imposta;
tot_lordo += riga._imponibile + riga._imposta;
}
if (riga._tipodoc != "CR" && riga._tipodoc != "SC" && riga._tipodoc == "RF")
{
dep_imponib += riga._imponibile;
dep_imposta += riga._imposta;
tot_imponib += riga._imponibile;
tot_imposta += riga._imposta;
}
if (k == (_tot_iva_array.items()-1))
{
set_row(rr, "%3s", (const char*)riga._codiva);
TString descr = descr_iva(riga._codiva);
set_row(rr, "@5g%s", (const char*)descr);
if (dep_imponib != ZERO)
set_row(rr, "@25g%r", &dep_imponib);
if (dep_imposta != ZERO)
set_row(rr, "@41g%r", &dep_imposta);
if (dep_lordo != ZERO)
set_row(rr, "@61g%r", &dep_lordo);
}
}
_tot_iva_array.destroy();
rr++;
set_row(++rr, "TOTALE@25g%r@41g%r", &tot_imponib, &tot_imposta);
if (_corrispettivi)
if (tot_lordo != ZERO)
set_row(rr, "@61g%r", &tot_lordo);
if (_tipo_reg == 2) rr = stampa_acquisti(rr);
if (_tipo_reg == 2 && _tipo_stampa != 1)
stampa_plafonds(rr);
}
}
*/
void CG4400_application::set_page_tot_reg()
{
int rr=0;
@ -1830,6 +1726,7 @@ bool CG4400_application::compila_reg(const TMask& m)
_pagine_stampate = _tabreg->get_long("I1");
_numini = _pagine_stampate;
_corrispettivi = _tabreg->get_bool("B0");
_sosp_imposta = _tabreg->get_bool("B1");
_liquidazione = _tabreg->get_bool("B7");
_riep_liq = _tabreg->get_bool("B6");
_stampa_cred_pre = _tabreg->get_bool("B4");
@ -2694,6 +2591,7 @@ void CG4400_application::look_reg()
_liquidazione = _tabreg->get_bool("B7");
_riep_liq = _tabreg->get_bool("B6");
_corrispettivi = _tabreg->get_bool("B0");
_sosp_imposta = _tabreg->get_bool("B1");
_pagine_stampate = _tabreg->get_long("I1");
_numini = _pagine_stampate;
_cod_un_loc = _tabreg->get_int("I7");
@ -3228,11 +3126,23 @@ void CG4400_application::preprocess_header()
r++;
/*
if (!_intesta_vidi)
set_header(r, "Registro IVA: %s %s %s Attivita\' %s %s",
(const char *) _codreg, (const char *) _desc_lib,
(const char *) data, (const char *) _codatt,
(const char *) _attivita);
*/
if (!_intesta_vidi)
{
if (_intesta_liq)
set_header(r, "Registro IVA: %s %s %s", (const char*)_codreg,
(const char*)_desc_lib, (const char*) data);
else set_header(r, "Registro IVA: %s %s %s Attivita\' %s %s",
(const char*) _codreg, (const char*) _desc_lib,
(const char*) data, (const char*) _codatt,
(const char*) _attivita);
}
else
{
set_header(r++, "Registro IVA: %s %s", (const char *) _codreg, (const char *) _desc_lib);

View File

@ -54,6 +54,7 @@ class CG4400_application : public TPrintapp
bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri, _auto_intraf, _stampa;
bool _corrispettivi, _liquidazione, _riep_liq, _stampa_ind_comp, _esiste_riga_iva, _stampa_cred_pre;
bool _rif_vid, _intesta_vidi, _intesta_liq, _stampa_data_reg, _ok_vidi;
bool _sosp_imposta;
char _frequiva, _tipo_riepilogativo;
TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg;
TDate _u_data;
@ -66,7 +67,7 @@ class CG4400_application : public TPrintapp
TString _codreg, _desc_lib, _codatt, _attivita, _tipoatt;
TString _tipodoc, _descr_doc, _codlib, _codice_vidi;
TString _cofi,_cap,_paiva,_ragsoc,_comunefis,_provfis,_viafis;
TFilename _t;
TFilename _t, _pippo;
TParagraph_string* _desc27;
messaggio _scelta;
@ -143,7 +144,7 @@ public:
real stampa_valori_plafonds(const real&, const int, TTable&, const char*);
void build_nomiditte(TProgind* pnd = NULL);
void set_year(int y) { _annoes = y; }
void clear_stliq();
void clear_stliq();
virtual bool preprocess_print(int, int);
virtual bool user_create();
virtual bool user_destroy();

View File

@ -1,272 +1,272 @@
// cg4400a.uml
// Stampa tabella registri
#include "cg4400a.h"
PAGE "Stampa registri IVA" -1 -1 56 18
LISTBOX TIPO_STAMPA 1 48
BEGIN
PROMPT 2 1 "Tipo "
HELP "Indicare il tipo di stampa da eseguire"
ITEM "1|Stampa di prova"
MESSAGE SHOW,3@|SHOW,CODICE_LIBRO_PROVA|SHOW,DATA_STAMPA|SHOW,TIPO_RIEPILOGATIVO|HIDE,RIF_VID|RESET,RIF_VID|HIDE,1@|RESET,1@|HIDE,2@|RESET,2@
ITEM "2|Libri bollati della ditta"
MESSAGE SHOW,1@|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,TIPO_RIEPILOGATIVO|RESET,TIPO_RIEPILOGATIVO|HIDE,RIF_VID|RESET,RIF_VID
ITEM "3|Libri unici dello studio"
MESSAGE SHOW,2@|HIDE,1@|RESET,1@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,TIPO_RIEPILOGATIVO|RESET,TIPO_RIEPILOGATIVO|HIDE,RIF_VID|RESET,RIF_VID
ITEM "4|Libri con riferimenti al libro giornale"
MESSAGE SHOW,1@|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,TIPO_RIEPILOGATIVO|RESET,TIPO_RIEPILOGATIVO|HIDE,RIF_VID|RESET,RIF_VID
END
NUMBER ANNO 4
BEGIN
PROMPT 2 3 "Anno "
HELP "Anno di cui si vuole stampare il registro"
FLAGS "A"
WARNING "Inserire l'anno"
VALIDATE FIXLEN_FUNC 4
CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 39 5
BEGIN
PROMPT 16 2 "Scelta ditte"
END
NUMBER DA_CODICE 6
BEGIN
PROMPT 17 3 "Da codice "
HELP "Codice ditta di inizio selezione"
END
BUTTON BUT_DFR 2 1
BEGIN
PROMPT 34 3 "*"
PICTURE 109
END
NUMBER A_CODICE 6
BEGIN
PROMPT 17 4 "A codice "
HELP "Codice ditta di fine selezione"
END
BUTTON BUT_DTO 2 1
BEGIN
PROMPT 34 4 "*"
PICTURE 109
END
STRING F_SELECT 5
BEGIN
PROMPT 17 5 "Scelte n. "
FLAGS "D"
END
BUTTON DLG_SELECT 10 2
BEGIN
PROMPT 41 3 "~Selezione"
HELP "Indicare le ditte da selezionare per la stampa"
END
BUTTON F_ANNULLA 10
BEGIN
PROMPT 41 5 "A~zzera"
HELP "Annullare la selezione delle ditte"
MESSAGE RESET,DA_CODICE|RESET,A_CODICE
END
DATE DATA_STAMPA
BEGIN
PROMPT 28 7 "Data stampa "
FLAGS "A"
CHECKTYPE REQUIRED
WARNING "Inserire la data di stampa"
END
STRING CODICE_LIBRO 3
BEGIN
PROMPT 2 7 "Codice libro "
HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO CODTAB[5,7]
FLAGS "U"
VALIDATE ZEROFILL_FUNC 3
GROUP 1
END
STRING CODICE_LIBRO_PROVA 3
BEGIN
PROMPT 2 7 "Codice libro "
HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_PROVA
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_PROVA CODTAB[5,7]
FLAGS "U"
VALIDATE ZEROFILL_FUNC 3
END
STRING CODICE_LIB_UN 3
BEGIN
PROMPT 2 7 "Libro unico "
HELP "Codice del libro unico su cui deve essere effettuata la stampa"
USE %LBU SELECT CODTAB[1,4]==#111
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIB_UN
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIB_UN CODTAB[5,7]
FLAGS "U"
CHECKTYPE REQUIRED
WARNING "Inserire il codice del libro unico"
VALIDATE ZEROFILL_FUNC 3
GROUP 2
END
GROUPBOX DLG_NULL 52 3
BEGIN
PROMPT 2 8 "Stampa movimenti"
END
DATE DA_DATA
BEGIN
PROMPT 3 9 "Dalla data "
HELP "Data di inizio stampa registro"
GROUP 3
END
DATE A_DATA
BEGIN
PROMPT 30 9 "Alla data "
HELP "Data di fine stampa registro"
VALIDATE DATE_CMP_FUNC >= DA_DATA
WARNING "Inserire una data non inferiore alla data limite inferiore"
GROUP 3
END
LISTBOX FINO_A_MESE 10
BEGIN
PROMPT 3 9 "Fino al mese "
HELP "Mese fino al quale eseguire la stampa"
FLAGS "M"
GROUP 1
END
LISTBOX MESE 10
BEGIN
PROMPT 4 9 "Mese "
HELP "Mese di cui eseguire la stampa"
FLAGS "M"
GROUP 2
END
LISTBOX TIPO_RIEPILOGATIVO 11
BEGIN
PROMPT 2 11 "Tipo riepilogativo "
HELP "Indicare il tipo stampa di liquidazione sul registro"
ITEM "P|Del periodo"
ITEM "A|Annuale"
END
GROUPBOX DLG_NULL 35 4
BEGIN
PROMPT 2 12 "Formato pagina"
END
LISTBOX STAMPA_WIDTH 4
BEGIN
PROMPT 3 13 "Numero di colonne "
HELP "Numero di colonne per pagina del modulo di stampa."
ITEM "1|132"
ITEM "2|198"
END
NUMBER STAMPA_LEN 3
BEGIN
PROMPT 3 14 "Numero di righe "
HELP "Numero di righe per pagina del modulo di stampa. Se non specificato assume 66 righe"
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Stampa registri IVA" -1 -1 56 18
NUMBER ULTIMA_PAGINA 4
BEGIN
PROMPT 2 2 "Ultimo numero di pagina stampata libro unico "
HELP "Numero dell'ultima pagina del libro unico stampata"
FLAGS "R"
GROUP 2
END
STRING CODICE_LIBRO_IVA 3
BEGIN
PROMPT 2 3 "Eventuale codice libro IVA "
HELP "Libro IVA da stampare. Vuoto = tutti"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_IVA
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_IVA CODTAB[5,7]
//CHECKTYPE NORMAL
FLAGS "U"
VALIDATE ZEROFILL_FUNC 3
GROUP 2
END
LISTBOX ULTIMO_MESE 10
BEGIN
PROMPT 2 4 "Ultimo mese stampa su libro unico "
FLAGS "MD"
ITEM "00|Nessuno"
GROUP 2
END
BOOLEAN RIF_VID
BEGIN
PROMPT 2 5 "Stampa riferimenti vidimazione"
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
// cg4400a.uml
// Stampa tabella registri
#include "cg4400a.h"
PAGE "Stampa registri IVA" -1 -1 56 18
LISTBOX TIPO_STAMPA 1 48
BEGIN
PROMPT 2 1 "Tipo "
HELP "Indicare il tipo di stampa da eseguire"
ITEM "1|Stampa di prova"
MESSAGE SHOW,3@|SHOW,CODICE_LIBRO_PROVA|SHOW,DATA_STAMPA|SHOW,TIPO_RIEPILOGATIVO|HIDE,RIF_VID|RESET,RIF_VID|HIDE,1@|RESET,1@|HIDE,2@|RESET,2@
ITEM "2|Libri bollati della ditta"
MESSAGE SHOW,1@|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,TIPO_RIEPILOGATIVO|RESET,TIPO_RIEPILOGATIVO|HIDE,RIF_VID|RESET,RIF_VID
ITEM "3|Libri unici dello studio"
MESSAGE SHOW,2@|HIDE,1@|RESET,1@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,TIPO_RIEPILOGATIVO|RESET,TIPO_RIEPILOGATIVO|HIDE,RIF_VID|RESET,RIF_VID
ITEM "4|Libri con riferimenti al libro giornale"
MESSAGE SHOW,1@|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,TIPO_RIEPILOGATIVO|RESET,TIPO_RIEPILOGATIVO|HIDE,RIF_VID|RESET,RIF_VID
END
NUMBER ANNO 4
BEGIN
PROMPT 2 3 "Anno "
HELP "Anno di cui si vuole stampare il registro"
FLAGS "A"
WARNING "Inserire l'anno"
VALIDATE FIXLEN_FUNC 4
CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 39 5
BEGIN
PROMPT 16 2 "Scelta ditte"
END
NUMBER DA_CODICE 5
BEGIN
PROMPT 17 3 "Da codice "
HELP "Codice ditta di inizio selezione"
END
BUTTON BUT_DFR 2 1
BEGIN
PROMPT 33 3 "*"
PICTURE 109
END
NUMBER A_CODICE 5
BEGIN
PROMPT 17 4 "A codice "
HELP "Codice ditta di fine selezione"
END
BUTTON BUT_DTO 2 1
BEGIN
PROMPT 33 4 "*"
PICTURE 109
END
STRING F_SELECT 5
BEGIN
PROMPT 17 5 "Scelte n. "
FLAGS "DR"
END
BUTTON DLG_SELECT 10 2
BEGIN
PROMPT 41 3 "~Selezione"
HELP "Indicare le ditte da selezionare per la stampa"
END
BUTTON F_ANNULLA 10
BEGIN
PROMPT 41 5 "A~zzera"
HELP "Annullare la selezione delle ditte"
MESSAGE RESET,DA_CODICE|RESET,A_CODICE
END
DATE DATA_STAMPA
BEGIN
PROMPT 28 7 "Data stampa "
FLAGS "A"
CHECKTYPE REQUIRED
WARNING "Inserire la data di stampa"
END
STRING CODICE_LIBRO 3
BEGIN
PROMPT 2 7 "Codice libro "
HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO CODTAB[5,7]
FLAGS "U"
VALIDATE ZEROFILL_FUNC 3
GROUP 1
END
STRING CODICE_LIBRO_PROVA 3
BEGIN
PROMPT 2 7 "Codice libro "
HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_PROVA
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_PROVA CODTAB[5,7]
FLAGS "U"
VALIDATE ZEROFILL_FUNC 3
END
STRING CODICE_LIB_UN 3
BEGIN
PROMPT 2 7 "Libro unico "
HELP "Codice del libro unico su cui deve essere effettuata la stampa"
USE %LBU SELECT CODTAB[1,4]==#111
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIB_UN
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIB_UN CODTAB[5,7]
FLAGS "U"
CHECKTYPE REQUIRED
WARNING "Inserire il codice del libro unico"
VALIDATE ZEROFILL_FUNC 3
GROUP 2
END
GROUPBOX DLG_NULL 52 3
BEGIN
PROMPT 2 8 "Stampa movimenti"
END
DATE DA_DATA
BEGIN
PROMPT 3 9 "Dalla data "
HELP "Data di inizio stampa registro"
GROUP 3
END
DATE A_DATA
BEGIN
PROMPT 30 9 "Alla data "
HELP "Data di fine stampa registro"
VALIDATE DATE_CMP_FUNC >= DA_DATA
WARNING "Inserire una data non inferiore alla data limite inferiore"
GROUP 3
END
LISTBOX FINO_A_MESE 10
BEGIN
PROMPT 3 9 "Fino al mese "
HELP "Mese fino al quale eseguire la stampa"
FLAGS "M"
GROUP 1
END
LISTBOX MESE 10
BEGIN
PROMPT 4 9 "Mese "
HELP "Mese di cui eseguire la stampa"
FLAGS "M"
GROUP 2
END
LISTBOX TIPO_RIEPILOGATIVO 11
BEGIN
PROMPT 2 11 "Tipo riepilogativo "
HELP "Indicare il tipo stampa di liquidazione sul registro"
ITEM "P|Del periodo"
ITEM "A|Annuale"
END
GROUPBOX DLG_NULL 35 4
BEGIN
PROMPT 2 12 "Formato pagina"
END
LISTBOX STAMPA_WIDTH 4
BEGIN
PROMPT 3 13 "Numero di colonne "
HELP "Numero di colonne per pagina del modulo di stampa."
ITEM "1|132"
ITEM "2|198"
END
NUMBER STAMPA_LEN 3
BEGIN
PROMPT 3 14 "Numero di righe "
HELP "Numero di righe per pagina del modulo di stampa. Se non specificato assume 66 righe"
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Stampa registri IVA" -1 -1 56 18
NUMBER ULTIMA_PAGINA 4
BEGIN
PROMPT 2 2 "Ultimo numero di pagina stampata libro unico "
HELP "Numero dell'ultima pagina del libro unico stampata"
FLAGS "R"
GROUP 2
END
STRING CODICE_LIBRO_IVA 3
BEGIN
PROMPT 2 3 "Eventuale codice libro IVA "
HELP "Libro IVA da stampare. Vuoto = tutti"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_IVA
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_IVA CODTAB[5,7]
//CHECKTYPE NORMAL
FLAGS "U"
VALIDATE ZEROFILL_FUNC 3
GROUP 2
END
LISTBOX ULTIMO_MESE 10
BEGIN
PROMPT 2 4 "Ultimo mese stampa su libro unico "
FLAGS "MD"
ITEM "00|Nessuno"
GROUP 2
END
BOOLEAN RIF_VID
BEGIN
PROMPT 2 5 "Stampa riferimenti vidimazione"
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -1,218 +1,232 @@
// classpim.cpp
// funzione per classificare i PIM e sommare tutto cio' che contengono
#include "classpim.h"
#include <stdlib.h>
bool classify_pim(TRectype& pimr, real& imp, real& iva, tiporec& t)
{
static int last_checked = -1;
// parse CODTAB of pim record
TString ctab = pimr.get("CODTAB");
const int tipocr = atoi(ctab.mid(15,1)); // tipo costo_ricavo
const int tipodet = atoi(ctab.mid(20,1)); // tipo detraibilita'
const int corrisp = (int)pimr.get_long("I0"); // netto = 1, lordo = 2
const int tipomov = (int)pimr.get_long("I1"); // 1 = vendita, 2 = acquisto
const bool vola = pimr.get_bool("B2");
const bool rimb = pimr.get_bool("B3");
TString tipoiva = pimr.get("S5");
// cominciamo cosi'
imp = ZERO; iva = ZERO;
for (int i = last_checked + 1; i <= MAX_TIPOREC; i++)
{
tiporec tocheck = (tiporec)i;
bool found = FALSE;
switch(tocheck)
{
case acq_norm:
found = tipomov == 2 && tipoiva != "NS";
found &= (tipodet == 0 /* || tipodet == 1 || tipodet == 3 ||
tipodet == 5 || tipodet == 9 */);
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
}
break;
case vend_norm:
found = tipomov == 1 /* && corrisp == 1 */ && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
}
break;
case acq_simp:
if (tipomov == 2)
{
imp = pimr.get_real("R11");
iva = pimr.get_real("R12");
}
found = !imp.is_zero() || !iva.is_zero();
break;
case vend_simp:
if (tipomov == 1 /* && corrisp == 1 */)
{
imp = pimr.get_real("R11");
iva = pimr.get_real("R12");
}
found = !imp.is_zero() || !iva.is_zero();
break;
case bolle_doganali:
if (tipomov == 2 && tipoiva != "NS")
{
imp = pimr.get_real("R9");
iva = pimr.get_real("R10");
}
found = !imp.is_zero() || !iva.is_zero();
break;
case base_ventilazione:
found = (tipomov == 2 && tipodet != 9 && tipocr == 1);
found &= (tipoiva != "NS" && tipoiva != "NI" && tipoiva != "ES");
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
}
found &= !imp.is_zero() || !iva.is_zero();
break;
case acq_beni_riv:
found = (tipomov == 2 && tipodet != 9 &&
(tipocr == 1 || (tipocr == 5 && tipodet == 3)));
found &= tipoiva != "NS" && tipoiva != "NI" && tipoiva != "ES";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
}
found &= (!imp.is_zero() || !iva.is_zero());
break;
case corr_norm:
found = tipomov == 1 && corrisp == 2 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case corr_simp:
if (tipomov == 1 && corrisp == 2)
{
imp = pimr.get_real("R11");
iva = pimr.get_real("R12");
}
found = !imp.is_zero() || !iva.is_zero();
break;
case acq_beni_ammort:
found = tipomov == 2 && tipocr == 2 &&
tipodet == 0 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_beni_ammort_nd:
found = tipomov == 2 && tipocr ==2 &&
tipodet != 0 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_beni_leasing:
found = tipomov == 2 && tipocr == 8 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_amm_ultdetr:
found = tipomov == 2 && tipocr == 3 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_ind_op_es:
found = tipomov == 2 && tipodet == 1 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_ind_pass_int:
found = tipomov == 2 && tipodet == 3 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_ind_art_19:
found = tipomov == 2 && tipodet == 9 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case cess_amm:
found = tipomov == 1 && tipocr == 4 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case vend_rimborso:
found = tipomov == 1 && rimb && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_rimborso:
found = tipomov == 2 && rimb && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
}
if (i == MAX_TIPOREC)
last_checked = -1;
else if (found)
{
t = tocheck;
last_checked = i;
break;
}
}
return last_checked != -1;
}
// classpim.cpp
// funzione per classificare i PIM e sommare tutto cio' che contengono
#include "classpim.h"
#include <stdlib.h>
bool classify_pim(TRectype& pimr, real& imp, real& iva, tiporec& t)
{
static int last_checked = -1;
// parse CODTAB of pim record
TString ctab = pimr.get("CODTAB");
const int tipocr = atoi(ctab.mid(15,1)); // tipo costo_ricavo
const int tipodet = atoi(ctab.mid(20,1)); // tipo detraibilita'
const int corrisp = (int)pimr.get_long("I0"); // netto = 1, lordo = 2
const int tipomov = (int)pimr.get_long("I1"); // 1 = vendita, 2 = acquisto
const bool vola = pimr.get_bool("B2");
const bool rimb = pimr.get_bool("B3");
const bool ricl = pimr.get_bool("B4");
TString tipoiva = pimr.get("S5");
// cominciamo cosi'
imp = ZERO; iva = ZERO;
for (int i = last_checked + 1; i <= MAX_TIPOREC; i++)
{
tiporec tocheck = (tiporec)i;
bool found = FALSE;
switch(tocheck)
{
case acq_norm:
//found = tipomov == 2 && tipoiva != "NS";
found = tipomov == 2;
found &= (tipodet == 0 /* || tipodet == 1 || tipodet == 3 ||
tipodet == 5 || tipodet == 9 */);
if (found)
{
imp = pimr.get_real("R0") - pimr.get_real("R9");
iva = pimr.get_real("R1") - pimr.get_real("R10");
}
break;
case vend_norm:
//found = tipomov == 1 /* && corrisp == 1 */ && tipoiva != "NS";
found = tipomov == 1 /* && corrisp == 1 */;
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
}
break;
case acq_simp:
if (tipomov == 2)
{
imp = pimr.get_real("R11");
iva = pimr.get_real("R12");
}
found = !imp.is_zero() || !iva.is_zero();
break;
case vend_simp:
if (tipomov == 1 /* && corrisp == 1 */)
{
imp = pimr.get_real("R11");
iva = pimr.get_real("R12");
}
found = !imp.is_zero() || !iva.is_zero();
break;
case bolle_doganali:
//if (tipomov == 2 && tipoiva != "NS")
if (tipomov == 2)
{
imp = pimr.get_real("R9");
iva = pimr.get_real("R10");
}
found = !imp.is_zero() || !iva.is_zero();
break;
case base_ventilazione:
found = (tipomov == 2 && tipodet != 9 && tipocr == 1);
found &= (tipoiva != "NS" && tipoiva != "NI" && tipoiva != "ES");
found &= (ricl ? TRUE : tipodet == 3);
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
}
found &= !imp.is_zero() || !iva.is_zero();
break;
case acq_beni_riv:
/*
found = (tipomov == 2 && tipodet != 9 &&
(tipocr == 1 || (tipocr == 5 && tipodet == 3)));
found &= tipoiva != "NS" && tipoiva != "NI" && tipoiva != "ES";
found &= (ricl ? TRUE : tipodet == 3);
*/
found = (tipomov == 2 && (tipocr == 1 || tipocr == 5));
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
}
found &= (!imp.is_zero() || !iva.is_zero());
break;
case corr_norm:
found = tipomov == 1 && corrisp == 2 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case corr_simp:
if (tipomov == 1 && corrisp == 2)
{
imp = pimr.get_real("R11");
iva = pimr.get_real("R12");
}
found = !imp.is_zero() || !iva.is_zero();
break;
case acq_beni_ammort:
//found = tipomov == 2 && tipocr == 2 &&
// tipodet == 0 && tipoiva != "NS";
found = tipomov == 2 && tipocr == 2 && tipodet == 0;
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_beni_ammort_nd:
//found = tipomov == 2 && tipocr ==2 &&
// tipodet != 0 && tipoiva != "NS";
found = tipomov == 2 && tipocr ==2 && tipodet != 0;
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_beni_leasing:
//found = tipomov == 2 && tipocr == 8 && tipoiva != "NS";
found = tipomov == 2 && tipocr == 8;
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_amm_ultdetr:
//found = tipomov == 2 && tipocr == 3 && tipoiva != "NS";
found = tipomov == 2 && tipocr == 3;
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_ind_op_es:
found = tipomov == 2 && tipodet == 1 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_ind_pass_int:
found = tipomov == 2 && tipodet == 3 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_ind_art_19:
found = tipomov == 2 && tipodet == 9 && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case cess_amm:
//found = tipomov == 1 && tipocr == 4 && tipoiva != "NS";
found = tipomov == 1 && tipocr == 4;
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case vend_rimborso:
found = tipomov == 1 && rimb && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
case acq_rimborso:
found = tipomov == 2 && rimb && tipoiva != "NS";
if (found)
{
imp = pimr.get_real("R0");
iva = pimr.get_real("R1");
found &= (!imp.is_zero() || !iva.is_zero());
}
break;
}
if (i == MAX_TIPOREC)
last_checked = -1;
else if (found)
{
t = tocheck;
last_checked = i;
break;
}
}
return last_checked != -1;
}