COrretti errori su lista movimenti giornale mastrini e bilancio IV direttiva

git-svn-id: svn://10.65.10.50/trunk@775 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1994-12-20 09:36:33 +00:00
parent d774a2e53c
commit 0c7584c8a6
14 changed files with 1909 additions and 1646 deletions

View File

@ -6,6 +6,8 @@
#include <tabutil.h>
#include <utility.h>
#include <urldefid.h>
#include <array.h>
#include <lffiles.h>
#include <mov.h>
#include <rmov.h>
@ -98,7 +100,7 @@ class TListaMov_application : public TPrintapp
real _op_esenti, _op_non_imp, _impo, _impos;
real _tot_dare, _tot_avere, _tot_avere_giornaliero;
real _tot_dare_giornaliero, _tot_dare_generale, _tot_avere_generale;
bool _intracom, _no_preprocess_page, _salto_pagina, _stampa_anno_comp,_esiste_riga_iva,_nonesiste_riga_iva;
bool _intra, _no_preprocess_page, _salto_pagina, _stampa_anno_comp,_esiste_riga_iva,_nonesiste_riga_iva;
bool _stampa_parte_iva,_alleg_causale,_stampa_mess_alleg_iva,_allegb,_ricser;
bool _settata_prima_riga, _causale_gia_stampata;
int _cur1,_cur2,_cur2b,_cur3,_cur4,_decidi,_tipod,_controllo_mov_errati;
@ -312,6 +314,7 @@ void TListaMov_application::compila_clifo()
_civcf = _clifo->curr().get(CLI_CIVCF);
_paiv = _clifo->curr().get(CLI_PAIV);
_capcf = _clifo->curr().get(CLI_CAPCF);
_dencom = _clifo->curr().get(CLI_LOCCF);
_cofi = _clifo->curr().get(CLI_COFI);
_codalleg = _clifo->curr().get_long(CLI_CODALLEG);
}
@ -326,7 +329,7 @@ void TListaMov_application::compila_comuni()
_comuni->read();
if (_comuni->bad())
_comuni->curr().zero();
_dencom = _comuni->get(COM_DENCOM);
//_dencom = _comuni->get(COM_DENCOM);
_provcom = _comuni->get(COM_PROVCOM);
}
@ -864,17 +867,17 @@ void TListaMov_application::stampa_intestazione()
set_row (2, "@bCliente@9g@6n", FLD(LF_MOV,MOV_CODCF));
else
set_row (2, "@bFornitore@12g@6n", FLD(LF_MOV,MOV_CODCF));
set_row (2, "@b@18g#35t", &_ragsoc);
set_row (2, "@b@54gInd #29t", &_indcf);
set_row (2, "@b@87g#10t", &_civcf);
set_row (2, "@b@18g#.35t", &_ragsoc);
set_row (2, "@b@54gInd #.29t", &_indcf);
set_row (2, "@b@87g#.10t", &_civcf);
set_row (2, "@b@98gP.I. #11t", &_paiv);
if (_alleg == 0)
set_row (2, "@b@121gAllegato NO");
else
set_row (2, "@b@121gAllegato SI");
set_row (3, "@b@54gCap #5t", &_capcf);
set_row (3,"@b@64gLoc #20t", &_dencom);
set_row (3,"@b@89gPr #5t", &_provcom);
set_row (3,"@b@64gLoc #.20t", &_dencom);
set_row (3,"@b@89gPr #.5t", &_provcom);
set_row (3, "@b@98gC.F. #16t", &_cofi);
if (_alleg == 0)
set_row (3, "@b@120gRifer@126g#6d", &_codalleg);
@ -910,6 +913,7 @@ bool TListaMov_application::preprocess_page(int file,int counter)
_tipo = current_cursor()->file(LF_MOV).get_char(MOV_TIPO);
_codcf = current_cursor()->file(LF_MOV).get_long(MOV_CODCF);
_numero = current_cursor()->file(LF_MOV).get_long(MOV_NUMREG);
_codval = cur->curr(LF_MOV).get(MOV_CODVALI);
_tiporegistro = CodiceRegistro(_registro, _anno);
_causale_gia_stampata = FALSE;
@ -992,7 +996,7 @@ bool TListaMov_application::preprocess_page(int file,int counter)
}
return TRUE;
}
else if ((_stampa_parte_iva)&&(file == LF_RMOVIVA))
else if ( _stampa_parte_iva && file == LF_RMOVIVA)
{
TRectype iva(current_cursor()->file(LF_RMOVIVA).curr());
_impo = iva.get_real(RMI_IMPONIBILE);
@ -1000,8 +1004,9 @@ bool TListaMov_application::preprocess_page(int file,int counter)
_tipocr = iva.get_int(RMI_TIPOCR);
_tipod = iva.get_int(RMI_TIPODET);
_cod = iva.get(RMI_CODIVA);
_intra = iva.get_bool(RMI_INTRA);
_c.add_riga(_impo,_impos,_cod,_tipod,_tipocr,0.00,0.00);
_c.add_riga(_impo,_impos,ZERO,ZERO,_cod,_tipod,_tipocr,_intra);
return TRUE;
}
@ -1017,7 +1022,9 @@ bool TListaMov_application::preprocess_page(int file,int counter)
_registro = current_cursor()->curr(LF_MOV).get(MOV_REG);
_anno = current_cursor()->curr(LF_MOV).get_int(MOV_ANNOES);
_tipodoc = current_cursor()->curr(LF_MOV).get(MOV_TIPODOC);
_causale_gia_stampata = FALSE;
TLocalisamfile* fl = &(current_cursor()->file(LF_MOV));
TRectype da (fl->curr());
TRectype a (fl->curr());
@ -1036,6 +1043,8 @@ bool TListaMov_application::preprocess_page(int file,int counter)
_caus->setkey(1);
_caus->curr().put(CAU_CODCAUS,_causale);
_caus->read();
if (_caus->bad())
_caus->curr().zero();
_descr_causale = _caus->curr().get(CAU_DESCR);
_alleg_causale = _caus->curr().get_bool(CAU_ALLEG);
_tipodocumento = _caus->curr().get(CAU_TIPODOC);
@ -1048,6 +1057,12 @@ bool TListaMov_application::preprocess_page(int file,int counter)
}
else if (file == LF_RMOV)
{
if (!_causale_gia_stampata)
{
set_row(_nr,"@4g%3s", (const char*) _causale);
set_row(_nr,"@8g%.20s@r", (const char*) _descr_causale);
_causale_gia_stampata = TRUE;
}
long gruppo = atol(current_cursor()->curr(LF_RMOV).get(RMV_GRUPPO));
long conto = atol(current_cursor()->curr(LF_RMOV).get(RMV_CONTO));
long sottoconto = atol(current_cursor()->curr(LF_RMOV).get(RMV_SOTTOCONTO));
@ -1092,7 +1107,7 @@ bool TListaMov_application::preprocess_page(int file,int counter)
_codcf = cur->curr(LF_MOV).get_long(MOV_CODCF);
_codcaus = cur->curr(LF_MOV).get(MOV_CODCAUS);
_tipodoc = cur->curr(LF_MOV).get(MOV_TIPODOC);
_codval = cur->curr(LF_MOV).get(MOV_CODVAL);
_codval = cur->curr(LF_MOV).get(MOV_CODVALI);
_totdoc = cur->curr(LF_MOV).get_real(MOV_TOTDOC);
/*
if ((_tipo_elenco != _tipo_clifo_prec) &&
@ -1167,27 +1182,27 @@ bool TListaMov_application::preprocess_page(int file,int counter)
_simbolo = SimboloValuta(_codval);
_allegb = CausAlleg(_codcaus);
_descr_doc = DescrDoc(_tipodoc);
//_totdocumenti += _totdoc;
//_ricser = current_cursor()->curr(LF_RMOVIVA).get_int(RMI_RICSER);
_intracom = current_cursor()->curr(LF_RMOVIVA).get_bool(RMI_INTRA);
if ((_codval != "LIT") && _intracom)
_intra = cur->curr(LF_RMOVIVA).get_bool(RMI_INTRA);
/*
if ((_codval != "LIT") && _intracom)
{
reset_row(1);
set_row(1,"Corr.in lire@14g@pN",FLD(LF_MOV,MOV_CORRLIRE,"###.###.###.###"));
set_row(1,"@34gCorr.in valuta@49g@pN",FLD(LF_MOV,MOV_CORRVALUTA,"###.###.###.###"));
if (_simbolo.not_empty())
set_row(1,"@65g%.5s", (const char *)_simbolo);
else
set_row(1,"@65g%.3s", (const char *)_codval);
}
*/
if (!_settata_prima_riga)
{
reset_row(1);
set_row(1,"Corr.in lire@14g@pN",FLD(LF_MOV,MOV_CORRLIRE,"###.###.###.###"));
set_row(1,"@34gCorr.in valuta@49g@pN",FLD(LF_MOV,MOV_CORRVALUTA,"###.###.###.###"));
if (_simbolo.not_empty())
set_row(1,"@65g%.5s", (const char *)_simbolo);
else
set_row(1,"@65g%.3s", (const char *)_codval);
}
else if (!_settata_prima_riga)
{
reset_row(1);
set_row(1,"@7n",FLD(LF_MOV,MOV_NUMREG));
set_row(1,"@8g@d",FLD(LF_MOV,MOV_DATAREG));
set_row(1,"@17g@3,rs",FLD(LF_MOV,MOV_REG));
set_row(1,"@21g@5n",FLD(LF_MOV,MOV_PROTIVA));
reset_print();
set_row(1, "");
set_row(2,"@7n",FLD(LF_MOV,MOV_NUMREG));
set_row(2,"@8g@d",FLD(LF_MOV,MOV_DATAREG));
set_row(2,"@17g@3,rs",FLD(LF_MOV,MOV_REG));
set_row(2,"@21g@5n",FLD(LF_MOV,MOV_PROTIVA));
TString protiva = cur->curr(LF_MOV).get(MOV_PROTIVA);
TString uprotiva = cur->curr(LF_MOV).get(MOV_UPROTIVA);
@ -1196,26 +1211,26 @@ bool TListaMov_application::preprocess_page(int file,int counter)
{
for (int i = 0; protiva[i] && (protiva[i] == uprotiva[i]); i++);
uprotiva = uprotiva.mid(i);
set_row(1, "@24g/@25g%s", (const char*) uprotiva);
set_row(2, "@24g/@25g%s", (const char*) uprotiva);
}
set_row(1, "@33g@d", FLD(LF_MOV,MOV_DATADOC));
set_row(1,"@42g@6,rs",FLD(LF_MOV,MOV_NUMDOC));
set_row(1,"@49g@3s",FLD(LF_MOV,MOV_CODCAUS));
set_row(1,"@53g@2s",FLD(LF_MOV,MOV_TIPODOC));
set_row(1,"@56g%.12s@r", (const char *)_descr_doc);
set_row(1,"@68g@pN",FLD(LF_MOV,MOV_TOTDOC,"###.###.###.###"));
set_row(1,"@84g@pN",FLD(LF_RMOVIVA,RMI_IMPONIBILE,"###.###.###.###"));
set_row(1,"@101g@4s",FLD(LF_RMOVIVA,RMI_CODIVA));
set_row(1,"@105g@1n",FLD(LF_RMOVIVA,RMI_TIPODET));
set_row(2, "@33g@d", FLD(LF_MOV,MOV_DATADOC));
set_row(2,"@42g@6,rs",FLD(LF_MOV,MOV_NUMDOC));
set_row(2,"@49g@3s",FLD(LF_MOV,MOV_CODCAUS));
set_row(2,"@53g@2s",FLD(LF_MOV,MOV_TIPODOC));
set_row(2,"@56g%.12s@r", (const char *)_descr_doc);
set_row(2,"@68g@pN",FLD(LF_MOV,MOV_TOTDOC,"###.###.###.###"));
set_row(2,"@84g@pN",FLD(LF_RMOVIVA,RMI_IMPONIBILE,"###.###.###.###"));
set_row(2,"@101g@4s",FLD(LF_RMOVIVA,RMI_CODIVA));
set_row(2,"@105g@1n",FLD(LF_RMOVIVA,RMI_TIPODET));
if (_tipoatt == "E")
if (_ricser == 1)
set_row(1,"@109g1");
set_row(2,"@109g1");
else if (_ricser == 2)
set_row(1,"@109g2");
set_row(1,"@111g@f",FLD(LF_RMOVIVA,RMI_INTRA));
set_row(1,"@113g@pN",FLD(LF_RMOVIVA,RMI_IMPOSTA,"###.###.###.###"));
set_row(2,"@109g2");
set_row(2,"@111g@f",FLD(LF_RMOVIVA,RMI_INTRA));
set_row(2,"@113g@pN",FLD(LF_RMOVIVA,RMI_IMPOSTA,"###.###.###.###"));
if (!_allegb)
set_row(1,"@131g*");
set_row(2,"@131g*");
incrementa_totali();
_settata_prima_riga = TRUE;
@ -1223,12 +1238,12 @@ bool TListaMov_application::preprocess_page(int file,int counter)
}
else if (_settata_prima_riga)
{
reset_row(1);
reset_print();
set_row(1,"@84g@pN", FLD(LF_RMOVIVA,RMI_IMPONIBILE,"###.###.###.###"));
set_row(1,"@101g@4s", FLD(LF_RMOVIVA,RMI_CODIVA));
set_row(1,"@113g@pN", FLD(LF_RMOVIVA,RMI_IMPOSTA,"###.###.###.###"));
set_row(1,"@101g@4s", FLD(LF_RMOVIVA,RMI_CODIVA));
set_row(1,"@113g@pN", FLD(LF_RMOVIVA,RMI_IMPOSTA,"###.###.###.###"));
incrementa_totali();
}
}
return TRUE;
}
}
@ -1268,28 +1283,38 @@ print_action TListaMov_application::postprocess_page(int file,int count)
int r = 0;
for (int j = 0; j < _c.items(); j++)
{
TRigaiva& riga = _c.riga(j);
TRigaiva& riga = (TRigaiva&)_c[j];
//r = j+1;
r++;
set_row(r, "Imponibile@12g%15.0r", &riga._imponibile);
set_row(r, "@31gImposta@39g%15.0r", &riga._imposta);
set_row(r, "@58gCodice Iva@68g%3s", (const char*)riga._codiva);
set_row(r, "@58gCodice Iva@69g%3s", (const char*)riga._codiva);
switch (riga._tipodet)
{
case 0 : set_row(r, "@73gDetraibile");
case 0 : set_row(r, "@76gDetraibile");
break;
case 1 : set_row(r, "@73gIndetraibile su op.es.");
case 1 : set_row(r, "@76gIndetraibile su op.es.");
break;
case 3 : set_row(r, "@73gPassaggi interni");
case 3 : set_row(r, "@76gPassaggi interni");
break;
case 9 : set_row(r, "@73gIndetraibile art.19");
case 9 : set_row(r, "@76gIndetraibile art.19");
break;
default: break;
}
}
if (riga._intra)
set_row(r, "@104gOper.intrac.");
if (_controllo_mov_errati != 3)
if (!_esiste_riga_iva && ! _nonesiste_riga_iva)
stampa_errori_iva(&r, riga._codiva, riga._tipodet, riga._tipocr);
}
real corrval = current_cursor()->file(LF_MOV).get_real(MOV_CORRVALUTA);
real corrlire = current_cursor()->file(LF_MOV).get_real(MOV_CORRLIRE);
if (corrval != ZERO)
{
set_row(++r,"Corr.in lire@14g%r", &corrlire);
set_row(r,"@34gCorr.in valuta@49g%r", &corrval);
set_row(r,"@66g%.3s", (const char *)_codval);
}
if (_esiste_riga_iva)
set_row(++r, "@11gPresenti righe IVA in una registrazione senza IVA");
if (_nonesiste_riga_iva)
@ -1367,10 +1392,26 @@ break;
case fatture:
if (file == LF_MOV)
{
reset_print();
TCursor* cur = current_cursor();
int rr = 1;
real corrval = cur->file(LF_MOV).get_real(MOV_CORRVALUTA);
real corrlire = cur->file(LF_MOV).get_real(MOV_CORRLIRE);
if (corrval != ZERO)
{
set_row(rr,"Corr.in lire@14g%r", &corrlire);
set_row(rr,"@34gCorr.in valuta@49g%r", &corrval);
/*
if (_simbolo.not_empty())
set_row(1,"@65g%.5s", (const char *)_simbolo);
else
set_row(1,"@65g%.3s", (const char *)_codval);
*/
set_row(rr++,"@66g%.3s", (const char *)_codval);
}
_totdocumenti += _totdoc;
TRecnotype pos, items;
bool FINITO = FALSE;
TCursor* cur = current_cursor();
pos = current_cursor()->pos();
items = current_cursor()->items();
@ -1390,27 +1431,28 @@ break;
if (FINITO || (_tipo_elenco != _tipoelsucc)||(_codcf != _codclifosucc))
{
reset_print();
TString blank = "";
set_row(1,(const char*)blank);
set_row(rr++,(const char*)blank);
if ((_tipo_elenco == "C")||(_tipo_elenco == "c"))
set_row(2, "@bTotali Cliente@18gDocumenti Totale documenti@45gAllegati:@56gImponibile@75gImposta@94gop. esenti@112gop. non imp.");
set_row(rr++, "@bTotali Cliente@18gDocumenti Totale documenti@45gAllegati:@56gImponibile@75gImposta@94gop. esenti@112gop. non imp.");
else
set_row(2, "@bTotali Fornitore@18gDocumenti Totale documenti@47gAllegati:@56gImponibile@75gImposta@94gop. esenti@112gop. non imp.");
set_row(3, "@b@18g%9d", _documenti);
set_row(3, "@b@28g%r", &_totdocumenti);
set_row(3, "@b@56g%r", &_totimponibile);
set_row(3, "@b@75g%r", &_totimposta);
set_row(3, "@b@94g%r", &_op_esenti);
set_row(3, "@b@112g%r", &_op_non_imp);
set_row(rr++, "@bTotali Fornitore@18gDocumenti Totale documenti@47gAllegati:@56gImponibile@75gImposta@94gop. esenti@112gop. non imp.");
set_row(rr, "@b@18g%9d", _documenti);
set_row(rr, "@b@28g%r", &_totdocumenti);
set_row(rr, "@b@56g%r", &_totimponibile);
set_row(rr, "@b@75g%r", &_totimposta);
set_row(rr, "@b@94g%r", &_op_esenti);
set_row(rr, "@b@112g%r", &_op_non_imp);
_totimposta = 0;
_totimponibile = 0;
_op_esenti = 0;
_op_non_imp = 0;
_documenti = 0;
_totdocumenti = 0;
return REPEAT_PAGE;
//return REPEAT_PAGE;
}
if (rr > 1)
return REPEAT_PAGE;
}
break;
@ -2326,7 +2368,7 @@ void TListaMov_application::preprocess_header()
//sep = "Studio ";
sep = "";
sep << "Data @< Pag. @#";
sep << "Data @< Pag. @#";
sep.right_just(127);
@ -2361,9 +2403,9 @@ void TListaMov_application::preprocess_header()
else
if (_flags & ST_NUMERO)
{
set_header (soh, "dal numero@12g%d", _numreg_ini);
set_header (soh, "dal numero@12g%ld", _numreg_ini);
if (_numreg_fin != 0)
set_header (soh, "@20gal numero@30g%d", _numreg_fin);
set_header (soh, "@20gal numero@30g%ld", _numreg_fin);
}
else
set_header (soh, "Completa in ordine di numero");
@ -2414,18 +2456,18 @@ void TListaMov_application::preprocess_header()
{
if (_annoes != 0)
{
set_header (soh, "Anno comp. %d", (const char*)_annoes);
set_header (soh, "Anno comp. %d", _annoes);
if (_flags & ST_DATA)
{
set_header (soh, "@16gda@19g%s",_data_ini.string());
set_header (soh, "@30ga@32g%s",_data_fin.string());
set_header (soh, "@16gda@19g%s", (const char*)_data_ini.string());
set_header (soh, "@30ga@32g%s", (const char*)_data_fin.string());
}
}
else
if (_flags & ST_DATA)
{
set_header (soh, "Dalla data@12g%s",_data_ini.string());
set_header (soh, "@24galla data@34g%s",_data_fin.string());
set_header (soh, "Dalla data@12g%s", (const char*)_data_ini.string());
set_header (soh, "@24galla data@34g%s", (const char*)_data_fin.string());
}
else
set_header (soh, "Completa in ordine di data");
@ -2433,8 +2475,8 @@ void TListaMov_application::preprocess_header()
else
if (_flags & ST_NUMERO)
{
set_header (soh, "@46gdal numero@57g%d", (const char*)_numreg_ini);
set_header (soh, "@65gal numero@75g%d",(const char*)_numreg_fin);
set_header (soh, "@46gdal numero@57g%ld", _numreg_ini);
set_header (soh, "@65gal numero@75g%ld", _numreg_fin);
}
else
set_header (soh, "@46gCompleta in ordine di numero");
@ -2456,25 +2498,25 @@ void TListaMov_application::preprocess_header()
set_header (soh, (const char*)sep);
if (_annoes != 0)
{
set_header (soh, "@15gAnno comp. %d", (const char*)_annoes);
set_header (soh, "@15gAnno comp %d", _annoes);
if (_flags & ST_DATA)
{
set_header (soh, "@31gdalla data@42g%s",_data_ini.string());
set_header (soh, "@53galla data@63g%s",_data_fin.string());
set_header (soh, "@30gdalla data@41g%s", (const char*)_data_ini.string());
set_header (soh, "@52galla data@62g%s", (const char*)_data_fin.string());
}
}
else
if (_flags & ST_DATA)
{
set_header (soh, "@15gdalla data@26g%s",_data_ini.string());
set_header (soh, "@37galla data@47g%s",_data_fin.string());
set_header (soh, "@15gdalla data@26g%s", (const char*)_data_ini.string());
set_header (soh, "@37galla data@47g%s", (const char*)_data_fin.string());
}
else
set_header (soh, "@15gcompleta in ordine di data");
if (_flags & ST_CODICE)
{
set_header (soh, "@99gdal codice@110g%d",_codice_ini);
set_header (soh, "@117gal codice@127g%d",_codice_fin);
set_header (soh, "@74gdal codice@85g%ld", _codice_ini);
set_header (soh, "@92gal codice@102g%ld", _codice_fin);
}
sep.fill('-');
set_header (++soh, (const char *) sep);

View File

@ -1,227 +1,244 @@
#include "cg3100.h"
PAGE "" -1 -1 76 20
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 48 1 "Data stampa "
HELP "Data in cui viene effettuata la stampa"
FLAGS "A"
END
NUMBER F_ANNO 4
BEGIN
GROUP 3
PROMPT 2 3 "Anno esercizio "
HELP "Anno d'esercizio di cui si vuole la lista"
USE ESC
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
FLAGS "RZ"
END
RADIOBUTTON F_MOVIMENTI 38
BEGIN
PROMPT 30 3 "Scelta stampa "
HELP "Indicare il tipo di stampa"
ITEM "0|Lista movimenti"
MESSAGE SHOW,F_CONTROLLO|SHOW,F_REGISTROFIN|SHOW,F_REGISTROINI|HIDE,1@|RESET,1@
ITEM "1|Lista movimenti di sola prima nota"
MESSAGE HIDE,F_CONTROLLO|RESET,F_CONTROLLO|HIDE,1@|RESET,1@|HIDE,F_REGISTROFIN|RESET,F_REGISTROFIN|HIDE,F_REGISTROINI|RESET,F_REGISTROINI
END
LIST F_CONTROLLO 21
BEGIN
PROMPT 2 7 "Controllo movimenti errati "
HELP "Indicare il tipo di controllo per movimenti errati"
ITEM "3|No" MESSAGE HIDE,1@|RESET,1@
ITEM "2|Si" MESSAGE SHOW,1@
ITEM "1|Stampa movimenti errati" MESSAGE SHOW,1@
END
TEXT DLG_NULL
BEGIN
GROUP 1
PROMPT 2 8 "Stampa messaggi : "
END
BOOLEAN F_ANNOC
BEGIN
GROUP 1
PROMPT 20 8 "Anno di competenza "
HELP "Indicare se stampa l'anno di competenza"
END
BOOLEAN F_ALLEGATO
BEGIN
GROUP 1
PROMPT 20 9 "Allegato iva "
HELP "Indicare se stampare l'allegato IVA"
MESSAGE TRUE DISABLE,F_STAMPA|COPY,F_STAMPA
MESSAGE FALSE ENABLE,F_STAMPA
END
RADIOBUTTON F_DECIDI 10
BEGIN
PROMPT 2 10 "Stampa "
HELP "Indicare il criterio di scelta dei movimenti"
ITEM "2|data" MESSAGE DISABLE,2@|RESET,2@|ENABLE,3@
ITEM "1|numero" MESSAGE DISABLE,3@|RESET,3@|ENABLE,2@
END
DATE F_DATAINI
BEGIN
PROMPT 16 11 "Stampa mov. dalla data "
HELP "Data da cui iniziare la stampa"
GROUP 3
END
DATE F_DATAFIN
BEGIN
PROMPT 52 11 "alla data "
HELP "Data fino a cui stampare i movimenti"
GROUP 3
END
NUMBER F_NUMEROINI 7
BEGIN
PROMPT 16 12 "Stampa mov. dal numero "
USE LF_MOV KEY 1
INPUT NUMREG F_NUMEROINI
DISPLAY "Numero@6" NUMREG
DISPLAY "Data@10" DATAREG
DISPLAY "Causale" CODCAUS
DISPLAY "Documento" NUMDOC
DISPLAY "Descrizione@50" DESCR
OUTPUT F_NUMEROINI NUMREG
CHECKTYPE NORMAL
FLAGS "R"
GROUP 2
HELP "Numero del movimento da cui iniziare la stampa"
END
NUMBER F_NUMEROFIN 7
BEGIN
PROMPT 52 12 "al numero "
COPY USE F_NUMEROINI
INPUT NUMREG F_NUMEROFIN
COPY DISPLAY F_NUMEROINI
OUTPUT F_NUMEROFIN NUMREG
CHECKTYPE NORMAL
FLAGS "R"
NUM_EXPR {(#F_NUMEROFIN==0)||(#F_NUMEROFIN>=#F_NUMEROINI)}
WARNING "Limite superiore errato"
GROUP 2
HELP "Numero del movimenti fino cui fare la stampa"
END
STRING F_CAUSALEINI 3
BEGIN
PROMPT 2 14 "Stampa dalla causale "
USE LF_CAUSALI KEY 1
INPUT CODCAUS F_CAUSALEINI
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEINI CODCAUS
FLAGS "UZ"
HELP "Causale di inizio stampa: vuoto = inizio archivio"
END
STRING F_CAUSALEFIN 3
BEGIN
PROMPT 40 14 "alla causale "
COPY USE F_CAUSALEINI
INPUT CODCAUS F_CAUSALEFIN
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEFIN CODCAUS
FLAGS "UZ"
HELP "Causale di fine stampa: vuoto = fine archivio"
END
STRING F_REGISTROINI 3
BEGIN
PROMPT 2 15 "Stampa dal registro iva "
USE REG SELECT I0<"3"
//INPUT CODTAB[1,5] F_ANNO SELECT
INPUT CODTAB[5,7] F_REGISTROINI
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROINI CODTAB[5,7]
FLAGS "UZ"
//CHECKTYPE NORMAL
HELP "Codice registro iva di inizio stampa: vuoto = inizio archivio"
END
STRING F_REGISTROFIN 3
BEGIN
PROMPT 40 15 "al reg. iva "
COPY USE F_REGISTROINI
//INPUT CODTAB[1,5] F_ANNO SELECT
INPUT CODTAB[5,7] F_REGISTROFIN
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROFIN CODTAB[5,7]
FLAGS "UZ"
//CHECKTYPE NORMAL
HELP "Codice registro iva di fine stampa: vuoto = fine archivio"
END
BOOLEAN F_STAMPA
BEGIN
PROMPT 2 16 "Stampa imponibili, imposte e codici iva "
HELP "Indicare se stampare i valori degli imponibili, dell'imposte e i codici IVA"
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 17 "Stampa movimenti provvisori "
HELP "Indicare se stampare i movimenti provvisori"
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 17 "N.B. se non indicato nessun valore stampa completa in ordine di data"
END
*/
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
#include "cg3100.h"
PAGE "" -1 -1 76 20
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 48 1 "Data stampa "
HELP "Data in cui viene effettuata la stampa"
FLAGS "A"
END
NUMBER F_ANNO 4
BEGIN
GROUP 3
PROMPT 2 3 "Anno esercizio "
HELP "Anno d'esercizio di cui si vuole la lista"
USE ESC
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
FLAGS "RZ"
END
RADIOBUTTON F_MOVIMENTI 38
BEGIN
PROMPT 30 3 "Scelta stampa "
HELP "Indicare il tipo di stampa"
ITEM "0|Lista movimenti"
MESSAGE SHOW,F_CONTROLLO|SHOW,F_REGISTROFIN|SHOW,F_REGISTROINI|SHOW,F_STAMPA|HIDE,1@|RESET,1@
ITEM "1|Lista movimenti di sola prima nota"
MESSAGE HIDE,F_CONTROLLO|RESET,F_CONTROLLO|HIDE,1@|RESET,1@|HIDE,F_REGISTROFIN|RESET,F_REGISTROFIN|HIDE,F_REGISTROINI|RESET,F_REGISTROINI|HIDE,F_STAMPA|RESET,F_STAMPA
END
LIST F_CONTROLLO 21
BEGIN
PROMPT 2 7 "Controllo movimenti errati "
HELP "Indicare il tipo di controllo per movimenti errati"
ITEM "3|No" MESSAGE HIDE,1@|RESET,1@
ITEM "2|Si" MESSAGE SHOW,1@
ITEM "1|Stampa movimenti errati" MESSAGE SHOW,1@
END
TEXT DLG_NULL
BEGIN
GROUP 1
PROMPT 2 8 "Stampa messaggi : "
END
BOOLEAN F_ANNOC
BEGIN
GROUP 1
PROMPT 20 8 "Anno di competenza "
HELP "Indicare se stampa l'anno di competenza"
END
BOOLEAN F_ALLEGATO
BEGIN
GROUP 1
PROMPT 20 9 "Allegato iva "
HELP "Indicare se stampare l'allegato IVA"
MESSAGE TRUE DISABLE,F_STAMPA|COPY,F_STAMPA
MESSAGE FALSE ENABLE,F_STAMPA
END
RADIOBUTTON F_DECIDI 10
BEGIN
PROMPT 2 10 "Stampa "
HELP "Indicare il criterio di scelta dei movimenti"
ITEM "2|data" MESSAGE DISABLE,2@|RESET,2@|ENABLE,3@
ITEM "1|numero" MESSAGE DISABLE,3@|RESET,3@|ENABLE,2@
END
DATE F_DATAINI
BEGIN
<<<<<<< cg3100a.uml
PROMPT 19 11 "Stampa mov. dalla data "
HELP "Data da cui iniziare la stampa"
=======
PROMPT 16 11 "Stampa mov. dalla data "
//HELP "Se non indicato nessun valore viene effettuata una stampa completa in ordine di data"
>>>>>>> 1.12
GROUP 3
END
DATE F_DATAFIN
BEGIN
<<<<<<< cg3100a.uml
PROMPT 55 11 "alla data "
HELP "Data fino a cui stampare i movimenti"
=======
PROMPT 52 11 "alla data "
>>>>>>> 1.12
GROUP 3
END
NUMBER F_NUMEROINI 7
BEGIN
<<<<<<< cg3100a.uml
PROMPT 19 12 "Stampa mov. dal numero "
HELP "Numero del movimento da cui iniziare la stampa"
=======
PROMPT 16 12 "Stampa mov. dal numero "
>>>>>>> 1.12
USE LF_MOV KEY 1
INPUT NUMREG F_NUMEROINI
DISPLAY "Numero@6" NUMREG
DISPLAY "Data@10" DATAREG
DISPLAY "Causale" CODCAUS
DISPLAY "Documento" NUMDOC
DISPLAY "Descrizione@50" DESCR
OUTPUT F_NUMEROINI NUMREG
CHECKTYPE NORMAL
FLAGS "R"
GROUP 2
END
NUMBER F_NUMEROFIN 7
BEGIN
<<<<<<< cg3100a.uml
PROMPT 55 12 "al numero "
HELP "Numero del movimenti fino cui fare la stampa"
=======
PROMPT 52 12 "al numero "
>>>>>>> 1.12
COPY USE F_NUMEROINI
INPUT NUMREG F_NUMEROFIN
COPY DISPLAY F_NUMEROINI
OUTPUT F_NUMEROFIN NUMREG
CHECKTYPE NORMAL
FLAGS "R"
NUM_EXPR {(#F_NUMEROFIN==0)||(#F_NUMEROFIN>=#F_NUMEROINI)}
WARNING "Limite superiore errato"
GROUP 2
END
STRING F_CAUSALEINI 3
BEGIN
PROMPT 2 14 "Stampa dalla causale "
USE LF_CAUSALI KEY 1
INPUT CODCAUS F_CAUSALEINI
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEINI CODCAUS
FLAGS "UR"
HELP "Causale di inizio stampa: vuoto = inizio archivio"
END
STRING F_CAUSALEFIN 3
BEGIN
PROMPT 40 14 "alla causale "
COPY USE F_CAUSALEINI
INPUT CODCAUS F_CAUSALEFIN
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEFIN CODCAUS
FLAGS "UR"
HELP "Causale di fine stampa: vuoto = fine archivio"
END
STRING F_REGISTROINI 3
BEGIN
PROMPT 2 15 "Stampa dal registro iva "
USE REG SELECT I0<"3"
//INPUT CODTAB[1,5] F_ANNO SELECT
INPUT CODTAB[5,7] F_REGISTROINI
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROINI CODTAB[5,7]
FLAGS "UR"
//CHECKTYPE NORMAL
HELP "Codice registro iva di inizio stampa: vuoto = inizio archivio"
END
STRING F_REGISTROFIN 3
BEGIN
PROMPT 40 15 "al reg. iva "
COPY USE F_REGISTROINI
//INPUT CODTAB[1,5] F_ANNO SELECT
INPUT CODTAB[5,7] F_REGISTROFIN
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROFIN CODTAB[5,7]
FLAGS "UR"
//CHECKTYPE NORMAL
HELP "Codice registro iva di fine stampa: vuoto = fine archivio"
END
BOOLEAN F_STAMPA
BEGIN
PROMPT 2 16 "Stampa imponibili, imposte e codici iva "
HELP "Indicare se stampare i valori degli imponibili, dell'imposte e i codici IVA"
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 17 "Stampa movimenti provvisori "
HELP "Indicare se stampare i movimenti provvisori"
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 17 "N.B. se non indicato nessun valore stampa completa in ordine di data"
END
*/
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -1,159 +1,163 @@
#include "cg3100.h"
PAGE "" -1 -1 73 16
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 48 1 "Data stampa "
HELP "Data in cui viene effettuata la stampa"
FLAGS "A"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 4 "Anno esercizio "
HELP "Anno d'esercizio di cui si vuole la stampa"
USE ESC KEY 1
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
FLAGS "RZ"
END
DATE F_DATAINI
BEGIN
PROMPT 2 6 "Stampa movimenti dalla data "
HELP "Data da cui iniziare la stampa"
END
DATE F_DATAFIN
BEGIN
PROMPT 45 6 "alla data "
HELP "Data fino a cui eseguire la stampa"
END
LIST F_TIPOELENCO 8
BEGIN
PROMPT 2 7 "Tipo elenco "
HELP "Indicare cosa includere nella stampa"
ITEM "C|Clienti"
MESSAGE HIDE,2@|SHOW,1@|RESET,1@
ITEM "F|Fornitori"
MESSAGE HIDE,2@|SHOW,1@|RESET,1@
ITEM "E|Entrambi"
MESSAGE HIDE,1@|SHOW,2@|RESET,2@
END
NUMBER F_CODICEINI 6
BEGIN
PROMPT 2 8 "Stampa dal codice "
HELP "Indicare il codice da cui iniziare la stampa"
GROUP 1
USE LF_CLIFO
INPUT TIPOCF F_TIPOELENCO SELECT
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEINI CODCF
FLAGS "R"
END
NUMBER F_CODICEFIN 6
BEGIN
PROMPT 45 8 "al codice "
HELP "Indicare il codice a cui terminare la stampa"
GROUP 1
COPY USE F_CODICEINI
INPUT TIPOCF F_TIPOELENCO SELECT
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEFIN CODCF
FLAGS "R"
END
NUMBER F_CODICEINI1 6
BEGIN
PROMPT 2 8 "Stampa dal codice "
HELP "Indicare il codice da cui iniziare la stampa"
GROUP 2
COPY USE F_CODICEINI
INPUT TIPOCF F_CODICEINI1
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEINI1 CODCF
FLAGS "R"
END
NUMBER F_CODICEFIN1 6
BEGIN
PROMPT 45 8 "al codice "
HELP "Indicare il codice a cui terminare la stampa"
GROUP 2
COPY USE F_CODICEINI
INPUT TIPOCF F_CODICEFIN1
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEFIN1 CODCF
FLAGS "R"
END
BOOLEAN F_CAMBIO
BEGIN
//GROUP 2
PROMPT 2 10 "Cambio pagina per cliente/fornitore "
HELP "Indicare se cambiare pagina nel passaggio da clienti a fornitori"
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 11 "Stampa movimenti provvisori "
HELP "Indicare se stampare i movimenti provvisori"
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 3 15 "(N.B. se non indicato nessun valore stampa completa in ordine di data) "
END
*/
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
#include "cg3100.h"
PAGE "" -1 -1 73 16
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 48 1 "Data stampa "
HELP "Data in cui viene effettuata la stampa"
FLAGS "A"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 4 "Anno esercizio "
HELP "Anno d'esercizio di cui si vuole la stampa"
USE ESC KEY 1
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
FLAGS "RZ"
END
DATE F_DATAINI
BEGIN
PROMPT 2 6 "Stampa movimenti dalla data "
HELP "Data da cui iniziare la stampa"
END
DATE F_DATAFIN
BEGIN
PROMPT 45 6 "alla data "
HELP "Data fino a cui eseguire la stampa"
END
LIST F_TIPOELENCO 8
BEGIN
PROMPT 2 7 "Tipo elenco "
HELP "Indicare cosa includere nella stampa"
ITEM "C|Clienti"
MESSAGE HIDE,2@|SHOW,1@|RESET,1@
ITEM "F|Fornitori"
MESSAGE HIDE,2@|SHOW,1@|RESET,1@
ITEM "E|Entrambi"
MESSAGE HIDE,1@|SHOW,2@|RESET,2@
END
NUMBER F_CODICEINI 6
BEGIN
PROMPT 2 8 "Stampa dal codice "
HELP "Indicare il codice da cui iniziare la stampa"
GROUP 1
USE LF_CLIFO
INPUT TIPOCF F_TIPOELENCO SELECT
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEINI CODCF
FLAGS "R"
END
NUMBER F_CODICEFIN 6
BEGIN
PROMPT 45 8 "al codice "
HELP "Indicare il codice a cui terminare la stampa"
GROUP 1
COPY USE F_CODICEINI
INPUT TIPOCF F_TIPOELENCO SELECT
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEFIN CODCF
NUM_EXPR {(#F_CODICEFIN==0)||(#F_CODICEFIN>=#F_CODICEINI)}
WARNING "Limite superiore errato"
FLAGS "R"
END
NUMBER F_CODICEINI1 6
BEGIN
PROMPT 2 8 "Stampa dal codice "
HELP "Indicare il codice da cui iniziare la stampa"
GROUP 2
COPY USE F_CODICEINI
INPUT TIPOCF F_CODICEINI1
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEINI1 CODCF
FLAGS "R"
END
NUMBER F_CODICEFIN1 6
BEGIN
PROMPT 45 8 "al codice "
HELP "Indicare il codice a cui terminare la stampa"
GROUP 2
COPY USE F_CODICEINI
INPUT TIPOCF F_CODICEFIN1
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEFIN1 CODCF
NUM_EXPR {(#F_CODICEFIN1==0)||(#F_CODICEFIN1>=#F_CODICEINI1)}
WARNING "Limite superiore errato"
FLAGS "R"
END
BOOLEAN F_CAMBIO
BEGIN
//GROUP 2
PROMPT 2 10 "Cambio pagina per cliente/fornitore "
HELP "Indicare se cambiare pagina nel passaggio da cliente/fornitore a cliente/fornitore"
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 11 "Stampa movimenti provvisori "
HELP "Indicare se stampare i movimenti provvisori"
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 3 15 "(N.B. se non indicato nessun valore stampa completa in ordine di data) "
END
*/
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -36,7 +36,7 @@ class TMastrini_application : public TPrintapp
TDociva_array _b;
TRelation* _rel;
TMask* _msk;
TMask* _msk;
TTable* _tabivd, * _tabtpd, * _tabreg, * _tabesc;
TLocalisamfile* _mov;
TLocalisamfile* _nditte;
@ -44,6 +44,7 @@ class TMastrini_application : public TPrintapp
TLocalisamfile* _comuni;
TLocalisamfile* _clifo;
TLocalisamfile* _caus;
Saldo* _sld;
TDate _data_ini,_data_fine,_data_finese,_data_finesesucc,_ultima_data_reg;
TDate _datareg,_datadoc,_data_inizioese,_datareg_stampa,_inizioes;
@ -376,12 +377,12 @@ bool TMastrini_application::almeno_un_record()
long numreg = rmov.get_long(RMV_NUMREG);
_mov->setkey(1);
_mov->zero();
_mov->put(MOV_NUMREG,numreg);
_mov->curr().zero();
_mov->curr().put(MOV_NUMREG,numreg);
_mov->read();
if (_mov->bad())
_mov->zero();
datacomp = (_mov->get(MOV_DATACOMP));
datacomp = (_mov->curr().get(MOV_DATACOMP));
if (_annomsk == 0)
datareg = rmov.get_date(RMV_DATAREG);
@ -635,6 +636,7 @@ void TMastrini_application::stampa_totali198()
bool TMastrini_application::preprocess_page(int file, int counter)
{
TLocalisamfile & rmov = current_cursor()->file(LF_RMOV);
long rec;
TDate datasucc;
TString datasuccstring,dataregrmovstring;
@ -742,14 +744,14 @@ bool TMastrini_application::preprocess_page(int file, int counter)
_importo = current_cursor()->curr(LF_RMOV).get_real(RMV_IMPORTO);
_importo_str = _importo.string("###############");
_mov->setkey(1);
_mov->zero();
_mov->put(MOV_NUMREG,_numreg);
_mov->curr().zero();
_mov->curr().put(MOV_NUMREG,_numreg);
_mov->read();
if (_mov->bad())
_mov->zero();
_annoes = _mov->get_int(MOV_ANNOES);
_regiva = _mov->get(MOV_REG);
_annoiva = _mov->get_int(MOV_ANNOIVA);
_regiva = _mov->curr().get(MOV_REG);
_annoiva = _mov->curr().get_int(MOV_ANNOIVA);
// Controlla se saldo e' diverso da 0
@ -759,17 +761,17 @@ bool TMastrini_application::preprocess_page(int file, int counter)
if (_annomsk == 0)
{
_datareg = (_mov->get(MOV_DATAREG));
_datareg = (_mov->curr().get(MOV_DATAREG));
_datareg_stampa = _datareg;
}
else
if (_annomsk != 0)
{
_datareg = _mov->get(MOV_DATACOMP);
_datareg_stampa = _mov->get(MOV_DATAREG);
_datareg = _mov->curr().get(MOV_DATACOMP);
_datareg_stampa = _mov->curr().get(MOV_DATAREG);
}
provvis = _mov->get(MOV_PROVVIS);
provvis = _mov->curr().get(MOV_PROVVIS);
_dataregs = _datareg_stampa.string();
@ -787,8 +789,8 @@ bool TMastrini_application::preprocess_page(int file, int counter)
if (_numcarat == 2)
set_row (1, "@197g*");
_codcaus = _mov->get(MOV_CODCAUS);
_tipodoc = _mov->get(MOV_TIPODOC);
_codcaus = _mov->curr().get(MOV_CODCAUS);
_tipodoc = _mov->curr().get(MOV_TIPODOC);
if (_stampatotiva && (_tmcf == 'C' || _tmcf == 'F'))
{
if (_tipodoc != "")
@ -797,40 +799,79 @@ bool TMastrini_application::preprocess_page(int file, int counter)
_b.add_riga(_descrdociva,_importo, _natdoc);
}
}
_datadoc = (_mov->get(MOV_DATADOC));
_datadoc = (_mov->curr().get(MOV_DATADOC));
_datadocs = _datadoc.string();
_numdoc = _mov->get(MOV_NUMDOC);
_numdoc = _mov->curr().get(MOV_NUMDOC);
descrizione_causale();
_descrizionemov = _mov->get(MOV_DESCR);
_numgio = atol(_mov->get(MOV_NUMGIO));
_descrizionemov = _mov->curr().get(MOV_DESCR);
_numgio = atol(_mov->curr().get(MOV_NUMGIO));
_descrizione = current_cursor()->curr(LF_RMOV).get(RMV_DESCR);
const bool st132 = _numcarat == 1;
const TString16 f0(st132 ? "@42g%.18s" : "@42g%.25s"),
f1(st132 ? "@61g%.23s" : "@68g%.32s");
if (_descrizione != "")
{
if (_descrizionemov != "")
set_row (1,(const char *) f0, (const char*) _descrizionemov);
else if (_descrizionemov == "")
set_row (1,(const char *) f0, (const char*) _descrcaus);
set_row (1,(const char *) f1, (const char*) _descrizione);
}
else
if (_descrizione == "")
{
set_row (1,(const char *) f0, (const char*) _descrcaus);
if (_descrizionemov != "")
set_row (1,(const char *) f1, (const char*) _descrizionemov);
else
if (_descrizionemov == "")
{
conto(_gruppocontr,_contocontr,FALSE);
TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr);
TString descr_contr = tc.descrizione();
set_row (1,(const char *) f1, (const char*) descr_contr);
}
if (_numcarat == 1) // Stampa 132 caratteri
{
if (_descrizione != "")
{
if (_descrizionemov != "")
{
set_row (1,"@42g%.18s", (const char*) _descrizionemov);
set_row (1,"@61g%.23s", (const char*) _descrizione);
}
else if (_descrizionemov == "")
{
set_row (1,"@42g%.18s", (const char*) _descrcaus);
set_row (1,"@61g%.23s", (const char*) _descrizione);
}
}
else if (_descrizione == "")
if (_descrizionemov != "")
{
set_row (1,"@42g%.18s", (const char*) _descrcaus);
set_row (1,"@61g%.23s", (const char*) _descrizionemov);
}
else
if (_descrizionemov == "")
{
conto(_gruppocontr,_contocontr,FALSE);
TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr);
TString descr_contr = tc.descrizione();
set_row (1,"@42g%.18s", (const char*) _descrcaus);
set_row (1,"@61g%.23s", (const char*) descr_contr);
}
}
else
if (_numcarat == 2) // Stampa 198 caratteri
{
if (_descrizione != "")
{
if (_descrizionemov != "")
{
set_row (1,"@42g%.25s", (const char*) _descrizionemov);
set_row (1,"@68g%.32s", (const char*) _descrizione);
}
else if (_descrizionemov == "")
{
set_row (1,"@42g%.25s", (const char*) _descrcaus);
set_row (1,"@68g%.32s", (const char*) _descrizione);
}
}
else if (_descrizione == "")
if (_descrizionemov != "")
{
set_row (1,"@42g%.25s", (const char*) _descrcaus);
set_row (1,"@68g%.32s", (const char*) _descrizionemov);
}
else
if (_descrizionemov == "")
{
conto(_gruppocontr,_contocontr,FALSE);
TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr);
TString descr_contr = tc.descrizione();
set_row (1,"@42g%.25s", (const char*) _descrcaus);
set_row (1,"@68g%.32s", (const char*) descr_contr);
}
}
if (_sezione == "D")
{
_totale_periodo_dare += _importo;
@ -867,7 +908,7 @@ bool TMastrini_application::preprocess_page(int file, int counter)
if (_numcarat == 2)
{
ricerca_regiva();
_protiva = atol(_mov->get(MOV_PROTIVA));
_protiva = atol(_mov->curr().get(MOV_PROTIVA));
if (_protiva != 0)
set_row (1,"@191g%5d", _protiva);
@ -1007,12 +1048,12 @@ void TMastrini_application::stampa_totaliiva()
void TMastrini_application::descrizione_causale()
{
_caus->setkey(1);
_caus->zero();
_caus->put(CAU_CODCAUS, _codcaus);
_caus->curr().zero();
_caus->curr().put(CAU_CODCAUS, _codcaus);
_caus->read();
if (_caus->bad())
_caus->zero();
_descrcaus = _caus->get(CAU_DESCR);
_descrcaus = _caus->curr().get(CAU_DESCR);
}
// Ricerca sulla tabella dei tipi documento, la descrizione e la natura del
@ -1022,22 +1063,22 @@ void TMastrini_application::documenti_iva()
{
TString dep;
_tabtpd->zero();
_tabtpd->curr().zero();
dep << format ("%2s",(const char*) _tipodoc);
_tabtpd->put("CODTAB", (const char*) dep);
_tabtpd->curr().put("CODTAB", (const char*) dep);
_tabtpd->read();
_descrdociva = _tabtpd->get("S0");
_natdoc = atoi(_tabtpd->get("I0"));
_descrdociva = _tabtpd->curr().get("S0");
_natdoc = atoi(_tabtpd->curr().get("I0"));
}
void TMastrini_application::ricerca_regiva()
{
TString16 dep;
_tabreg->zero();
_tabreg->curr().zero();
dep << format("%04d", _annoiva);
dep << format("%3s" , (const char*) _regiva);
_tabreg->put("CODTAB", (const char*) dep);
_tabreg->curr().put("CODTAB", (const char*) dep);
_tabreg->read();
_tipo = _tabreg->get_int("I0");
}
@ -1081,6 +1122,7 @@ bool TMastrini_application::set_print(int)
KEY tasto;
int crt;
TLocalisamfile* fl;
TString data1,data2;
_puoi_stampare = TRUE;
@ -1181,12 +1223,12 @@ void TMastrini_application::data_fine_esercizio(int anno)
{
TString16 dep;
_tabesc->zero();
_tabesc->curr().zero();
dep << format ("%04d", anno);
_tabesc->put("CODTAB", (const char*) dep);
_tabesc->curr().put("CODTAB", (const char*) dep);
_tabesc->read();
_data_finese = _tabesc->get("D1");
_data_inizioese = _tabesc->get("D0");
_data_finese = _tabesc->curr().get("D1");
_data_inizioese = _tabesc->curr().get("D0");
}
void TMastrini_application::preprocess_header()
@ -1230,29 +1272,28 @@ void TMastrini_application::ricerca_dati_ditta()
long app;
_nditte->setkey(1);
_nditte->zero();
_nditte->put(NDT_CODDITTA,_codice_ditta);
_nditte->curr().zero();
_nditte->curr().put(NDT_CODDITTA,_codice_ditta);
_nditte->read();
app=_nditte->get_long(NDT_CODDITTA);
_ragsoc=_nditte->get(NDT_RAGSOC);
app=_nditte->curr().get_long(NDT_CODDITTA);
_ragsoc=_nditte->curr().get(NDT_RAGSOC);
_unloc->setkey(1);
_unloc->zero();
_unloc->put(ULC_CODDITTA,app);
_unloc->put(ULC_CODULC,"1");
_unloc->curr().zero();
_unloc->curr().put(ULC_CODDITTA,app);
_unloc->curr().put(ULC_CODULC,"1");
_unloc->read();
_indulc=_unloc->get(ULC_INDULC);
_civulc=_unloc->get(ULC_CIVULC);
_capulc=_unloc->get(ULC_CAPULC);
_comulc=_unloc->get(ULC_COMULC);
_indulc=_unloc->curr().get(ULC_INDULC);
_civulc=_unloc->curr().get(ULC_CIVULC);
_capulc=_unloc->curr().get(ULC_CAPULC);
_comulc=_unloc->curr().get(ULC_COMULC);
_comuni->setkey(1);
_comuni->zero();
_comuni->put(COM_COM,_comulc);
if (_comuni->read() != NOERR)
_comuni->zero();
_com=_comuni->get(COM_DENCOM);
_prov=_comuni->get(COM_PROVCOM);
_comuni->curr().zero();
_comuni->curr().put(COM_COM,_comulc);
_comuni->read();
_com=_comuni->curr().get(COM_DENCOM);
_prov=_comuni->curr().get(COM_PROVCOM);
}
// Crea l'intestazione per la stampa a 132 e a 198 caratteri
@ -1404,12 +1445,12 @@ void TMastrini_application::calcola_progressivi_al()
long numreg = rmov.get_long(RMV_NUMREG);
_mov->setkey(1);
_mov->zero();
_mov->put(MOV_NUMREG,numreg);
_mov->curr().zero();
_mov->curr().put(MOV_NUMREG,numreg);
_mov->read();
if (_mov->bad())
_mov->zero();
datacomp = (_mov->get(MOV_DATACOMP));
datacomp = (_mov->curr().get(MOV_DATACOMP));
if (_annomsk == 0)
{
@ -1532,9 +1573,8 @@ void TMastrini_application::calcola_progressivi()
{
if ((_indbil == 1) || (_indbil == 2) || (_indbil == 5))
{
TSaldo sld;
const TRecnotype pos = saldi.recno();
saldo = sld.saldofin_esprec(_anno_corrente,_gruppo,_conto,_sottoc);
saldo = _sld->saldofin_esprec(_anno_corrente,_gruppo,_conto,_sottoc);
saldi.readat(pos);
if (saldo> ZERO)
@ -1607,7 +1647,7 @@ void TMastrini_application::stampa_progressivi()
void TMastrini_application::ricerca_clifo()
{
TString ragsoc,paiv,cofi,indcf,capcf,ptel,tel,statocf,comcf,dencom,provcom;
TString ragsoc,paiv,cofi,indcf,capcf,ptel,tel,statocf,comcf,dencom,provcom,dep;
TLocalisamfile clifo(LF_CLIFO);
TLocalisamfile pconti(LF_PCON);
TString16 dataini,datafine;
@ -1634,20 +1674,18 @@ void TMastrini_application::ricerca_clifo()
comcf = clifo.get(CLI_COMCF);
_comuni->setkey(1);
_comuni->zero();
_comuni->put(COM_STATO, statocf);
_comuni->put(COM_COM, comcf);
if (_comuni->read() != NOERR)
_comuni->zero();
dencom = _comuni->get(COM_DENCOM);
provcom = _comuni->get(COM_PROVCOM);
_comuni->curr().zero();
_comuni->curr().put(COM_STATO, statocf);
_comuni->curr().put(COM_COM, comcf);
_comuni->read();
dencom = _comuni->curr().get(COM_DENCOM);
provcom = _comuni->curr().get(COM_PROVCOM);
pconti.setkey(1);
pconti.zero();
pconti.put(PCN_GRUPPO, _gruppo);
pconti.put(PCN_CONTO, _conto);
if (pconti.read() == NOERR)
pconti.zero();
pconti.read();
_sezivd = pconti.get_char(PCN_SEZIVD);
_lettivd = pconti.get_char(PCN_LETTIVD);
numrivd = pconti.get_int(PCN_NUMRIVD);
@ -1725,8 +1763,7 @@ void TMastrini_application::ricerca_classe_IV(bool scelta)
pconti.put(PCN_CONTO, _conto);
if (scelta)
pconti.put(PCN_SOTTOCONTO, _sottoc);
if (pconti.read() != NOERR)
pconti.zero();
pconti.read();
_sezivd = pconti.get_char(PCN_SEZIVD);
_lettivd = pconti.get_char(PCN_LETTIVD);
_numrivd_int = pconti.get_int (PCN_NUMRIVD);
@ -1737,7 +1774,7 @@ void TMastrini_application::ricerca_classe_IV(bool scelta)
void TMastrini_application::ricerca_gruppo()
{
TString80 descriz,descriz2;
TString80 descr,descriz,descriz2,dep;
TString dataini,datafine;
ricerca_classe_IV (TRUE); //Esiste a livello di sottoconto
@ -1874,6 +1911,7 @@ bool TMastrini_application::user_create()
_tabtpd = new TTable (TAB_TPD);
_tabreg = new TTable (TAB_REG);
_tabesc = new TTable (TAB_ESC);
_sld = new TSaldo ();
_msk = new TMask("cg3200a");
_msk->set_handler(F_SOTTOCINI_CONTO, sottoc_handler_ini);
@ -1900,7 +1938,9 @@ bool TMastrini_application::user_destroy()
delete _tabivd;
delete _tabtpd;
delete _tabreg;
delete _tabesc;
delete _tabesc;
delete _sld;
return TRUE;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,17 @@
// cg3400a.h
#define CODREG 100
#define DATA_DA 101
#define DATA_A 102
#define STAMPA_DEF 103
#define PAGINA_DA 104
#define REG_DESC 107
//#define REG_ANNO 108
#define ANNO_ESER 108
#define STAMPA_WIDTH 109
#define STAMPA_LEN 110
// cg3400a.h
#define CODREG 100
#define DATA_DA 101
#define DATA_A 102
#define STAMPA_DEF 103
#define PAGINA_DA 104
#define REG_DESC 107
//#define REG_ANNO 108
#define ANNO_ESER 108
#define STAMPA_WIDTH 109
#define STAMPA_LEN 110
#define F_CODDITTA 111
#define F_RAGSOC 112

View File

@ -1,122 +1,140 @@
#include "cg3400a.h"
PAGE "Stampa Libro Giornale" -1 -1 70 15
STRING CODREG 3
BEGIN
PROMPT 1 1 "Codice registro "
HELP "Codice del libro giornale da stampare"
USE REG SELECT (I0 = 5) || (I0 = 4)
// INPUT CODTAB[1,4] ANNO_ESER
INPUT CODTAB[5,7] CODREG
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Codice" CODTAB[5,7]
DISPLAY "Descrizione@50" S0
DISPLAY "Tipo" I0
OUTPUT ANNO_ESER CODTAB[1,4]
OUTPUT CODREG CODTAB[5,7]
OUTPUT REG_DESC S0
OUTPUT PAGINA_DA I1
// OUTPUT DATA_DA D0
// OUTPUT DATA_A D1
// CHECKTYPE NORMAL
WARNING "Registro inesistente"
FLAGS "UZ"
END
NUMBER ANNO_ESER 4
BEGIN
PROMPT 30 1 "Esercizio "
USE ESC
INPUT CODTAB ANNO_ESER
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio " D0
DISPLAY "Data fine " D1
DISPLAY "Data scarico" D2
OUTPUT ANNO_ESER CODTAB
// CHECKTYPE REQUIRED
FLAGS "ZH"
END
STRING REG_DESC 50
BEGIN
PROMPT 1 3 "Descrizione: "
FLAGS "D"
END
GROUPBOX DLG_NULL 25 5
BEGIN
PROMPT 1 5 "Intervallo"
END
RADIOBUTTON DLG_NULL 20
BEGIN
PROMPT 1 5 ""
HELP "Indicare l'intervallo di pagine da stampare"
ITEM "1|Tutto" MESSAGE DISABLE, PAGINA_DA
ITEM "2|Da pagina" MESSAGE ENABLE, PAGINA_DA
END
NUMBER PAGINA_DA 5
BEGIN
PROMPT 13 8 ""
HEL‡P "Numero di pagina da cui iniziare la stampa"
END
GROUPBOX DLG_NULL 33 5
BEGIN
PROMPT 33 5 "Formato pagina"
END
LISTBOX STAMPA_WIDTH 3
BEGIN
PROMPT 35 6 "Numero di colonne "
HELP "Numero di colonne del modulo di stampa (larghezza)"
ITEM "1|132 colonne"
ITEM "2|198 colonne"
END
NUMBER STAMPA_LEN 3
BEGIN
PROMPT 35 7 "Numero di righe "
HELP "Numero di righe del modulo di stampa (altezza)"
END
DATE DATA_DA
BEGIN
PROMPT 2 10 "Dalla data "
HELP "Data da cui iniziare la stampa"
END
DATE DATA_A
BEGIN
PROMPT 2 11 "Alla data "
HELP "Data a cui terminare la stampa"
// VALIDATE DATE_CMP_FUNC >= DATA_DA
WARNING "Specificare la data di fine stampa"
CHECKTYPE REQUIRED
END
BOOLEAN STAMPA_DEF
BEGIN
PROMPT 34 10 "Stampa definitiva"
HELP "Indicare se stampare su bollato"
MESSAGE TRUE DISABLE,DATA_DA | CLEAR, DATA_DA
MESSAGE FALSE ENABLE,DATA_DA
END
BUTTON DLG_PRINT 9 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
#include "cg3400a.h"
PAGE "Stampa Libro Giornale" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGSOC RAGSOC
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
STRING CODREG 3
BEGIN
PROMPT 1 4 "Codice registro "
HELP "Codice del libro giornale da stampare"
USE REG SELECT (I0 = 5) || (I0 = 4)
// INPUT CODTAB[1,4] ANNO_ESER
INPUT CODTAB[5,7] CODREG
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Codice" CODTAB[5,7]
DISPLAY "Descrizione@50" S0
DISPLAY "Tipo" I0
// OUTPUT ANNO_ESER CODTAB[1,4]
OUTPUT CODREG CODTAB[5,7]
OUTPUT REG_DESC S0
// OUTPUT PAGINA_DA I1
// OUTPUT DATA_DA D0
// OUTPUT DATA_A D1
// CHECKTYPE NORMAL
WARNING "Registro inesistente"
FLAGS "U"
END
NUMBER ANNO_ESER 4
BEGIN
PROMPT 30 5 "Esercizio "
FLAGS "ZH"
END
STRING REG_DESC 50
BEGIN
// PROMPT 1 6 "Descrizione "
PROMPT 25 4 ""
FLAGS "D"
END
DATE DATA_DA
BEGIN
PROMPT 1 6 "Dalla data "
HELP "Stampa i movimenti a partire dalla data specificata"
END
DATE DATA_A
BEGIN
PROMPT 40 6 "Alla data "
HELP "Stampa i movimenti fino alla data specificata"
// VALIDATE DATE_CMP_FUNC >= DATA_DA
WARNING "Specificare la data di fine stampa"
CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 30 4
BEGIN
PROMPT 1 8 "Intervallo"
END
RADIOBUTTON DLG_NULL 12
BEGIN
PROMPT 1 8 ""
HELP "Indicare l'intervallo di pagine da stampare"
ITEM "1|Tutto" MESSAGE CLEAR,PAGINA_DA|DISABLE, PAGINA_DA
ITEM "2|Da pagina " MESSAGE ENABLE, PAGINA_DA
END
NUMBER PAGINA_DA 5
BEGIN
PROMPT 18 10 ""
HELP "Numero di pagina da cui iniziare la stampa"
END
GROUPBOX DLG_NULL 35 4
BEGIN
PROMPT 40 8 "Formato pagina"
END
LISTBOX STAMPA_WIDTH 4
BEGIN
PROMPT 41 9 "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 41 10 "Numero di righe "
HELP "Numero di righe per pagina del modulo di stampa. Se non specificato assume 66 righe"
END
BOOLEAN STAMPA_DEF
BEGIN
PROMPT 2 13 "Stampa definitiva su bollato"
HELP "Seleziona la stampa su bollato oppure, se vuoto, la stampa di prova"
MESSAGE TRUE DISABLE,DATA_DA | CLEAR, DATA_DA
MESSAGE FALSE ENABLE,DATA_DA
END
BUTTON DLG_PRINT 9 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -1,41 +1,39 @@
#include "cg3400b.h"
PAGE "Progressivi precedenti" -1 -1 58 10
NUMBER N_RIGA_STAMPATO 6
BEGIN
PROMPT 1 1 "Ultimo numero di riga stampato "
FLAGS "D"
END
NUMBER PROGR_DARE 6
BEGIN
PROMPT 1 3 "Progressivo dare "
FLAGS "D"
END
DATE ULTIMA_DATA
BEGIN
PROMPT 1 5 "Ultima data di stampa "
FLAGS "D"
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 7 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 7 ""
END
BUTTON DLG_RIPRISTINA 10 2
BEGIN
PROMPT -33 7 "Ripristina"
END
ENDPAGE
ENDMASK
#include "cg3400b.h"
PAGE "Stampa giornale - progressivi precedenti" -1 -1 58 10
NUMBER N_RIGA_STAMPATO 6
BEGIN
PROMPT 1 1 "Ultimo numero di riga stampato "
END
NUMBER PROGR_DARE 15
BEGIN
PROMPT 1 3 "Progressivo dare "
PICTURE "."
END
DATE ULTIMA_DATA
BEGIN
PROMPT 1 5 "Ultima data di stampa "
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 7 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 7 ""
END
BUTTON DLG_RIPRISTINA 10 2
BEGIN
PROMPT -33 7 "~Ripristina"
END
ENDPAGE
ENDMASK

View File

@ -116,14 +116,42 @@ bool CG4400_application::mask_firm_to (TMask_field& f, KEY k)
bool CG4400_application::mask_mese (TMask_field& f, KEY k)
{
const short id = f.dlg();
int mese;
if (id == MESE) //Per stampa su libro unico
mese = f.mask().get_int(MESE);
if (id == FINO_A_MESE)
mese = f.mask().get_int(FINO_A_MESE); //Per stampa su bollato
if (k == K_ENTER)
{
int mese = f.mask().get_int(MESE);
int umese = f.mask().get_int(ULTIMO_MESE);
if (mese != umese+1)
return f.warning_box ("Le stampe devono essere richieste mese per mese!\n"
"I mesi successivi a %s non sono ancora stati stampati.", itom(umese));
if (id == MESE) //Per stampa su libro unico
{
int umese = f.mask().get_int(ULTIMO_MESE);
if (mese != umese+1)
return f.warning_box ("Le stampe devono essere richieste mese per mese!\n"
"I mesi successivi a %s non sono ancora stati stampati.", itom(umese));
}
}
if (k == K_TAB)
{
if (id == MESE)
if (mese == 12)
{
f.mask().show (TIPO_RIEPILOGATIVO);
f.mask().show (RIF_VID);
}
else
{
f.mask().hide (TIPO_RIEPILOGATIVO);
f.mask().hide (RIF_VID);
}
if (id == FINO_A_MESE)
{
if (mese == 12)
f.mask().show (TIPO_RIEPILOGATIVO);
else f.mask().hide (TIPO_RIEPILOGATIVO);
}
}
return TRUE;
}
@ -155,7 +183,7 @@ bool CG4400_application::mask_cod (TMask_field& f, KEY k)
bool CG4400_application::mask_data (TMask_field& f, KEY k)
{
if (k == K_ENTER)
if (k == K_TAB)
{
const int anno = f.mask().get_int(ANNO);
TDate data(f.get());
@ -164,19 +192,12 @@ bool CG4400_application::mask_data (TMask_field& f, KEY k)
{
f.warning_box("L'anno delle date limite deve essere uguale all'anno iva specificato");
return FALSE;
}
}
return TRUE;
}
bool CG4400_application::mask_tipo (TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TDate data(f.get());
if (data.ok())
if ( data.day() == 31 && data.month() == 12 )
f.mask().show (TIPO_RIEPILOGATIVO);
}
if (f.dlg() == A_DATA)
if (data.ok)
if ( data.day() == 31 && data.month() == 12 )
f.mask().show (TIPO_RIEPILOGATIVO);
else f.mask().hide (TIPO_RIEPILOGATIVO);
}
return TRUE;
}
@ -251,62 +272,6 @@ bool CG4400_application::mask_tipo (TMask_field& f, KEY k)
}
*/
//da una SHEET non e' possibile mandare messaggi nella maschera!!!
bool CG4400_application::tipostampa_handler (TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TMask& m = f.mask();
int stampa_su = m.get_int(TIPO_STAMPA);
if ( (stampa_su == 1) || (stampa_su == 4) )
{
m.hide (CODICE_LIB_UN);
m.hide (CODICE_LIBRO_PROVA);
m.hide (MESE);
m.hide (ULTIMO_MESE);
m.hide (ULTIMA_PAGINA);
m.hide (CODICE_LIBRO_IVA);
m.hide (DATA_STAMPA);
m.hide (DA_DATA);
m.hide (A_DATA);
m.show (CODICE_LIBRO);
m.show (TIPO_RIEPILOGATIVO);
m.show (FINO_A_MESE);
}
if (stampa_su == 2)
{
m.show (CODICE_LIB_UN);
m.hide (CODICE_LIBRO_PROVA);
m.show (MESE);
m.show (ULTIMO_MESE);
m.show (ULTIMA_PAGINA);
m.show (CODICE_LIBRO_IVA);
m.hide (DATA_STAMPA);
m.hide (DA_DATA);
m.hide (A_DATA);
m.hide (CODICE_LIBRO);
m.hide (TIPO_RIEPILOGATIVO);
m.hide (FINO_A_MESE);
}
if (stampa_su == 3)
{
m.hide (CODICE_LIB_UN);
m.hide (MESE);
m.hide (ULTIMO_MESE);
m.hide (ULTIMA_PAGINA);
m.hide (CODICE_LIBRO_IVA);
m.hide (CODICE_LIBRO);
m.show (CODICE_LIBRO_PROVA);
m.show (DATA_STAMPA);
m.show (DA_DATA);
m.show (A_DATA);
m.hide (TIPO_RIEPILOGATIVO);
m.hide (FINO_A_MESE);
}
}
return TRUE;
}
const char * CG4400_application::descr_doc(const char * tipo)
{
TTable tab_tpd("%TPD");
@ -757,7 +722,8 @@ int CG4400_application::stampa_prospetto()
else
rr = r;
if (_nrec > 0) //numero records di rmoviva
//if (_nrec > 0) //numero records di rmoviva
if (_esiste_riga_iva)
{
if (_corrispettivi)
set_row(++rr, "@26g------------------ P E R I O D O -------------------");
@ -888,7 +854,8 @@ void CG4400_application::set_page_tot_reg()
rr = stampa_prospetto();
if (_nrec > 0) //numero di records di rmoviva
//if (_nrec > 0) //numero di records di rmoviva
if (_esiste_riga_iva)
{
real tot_imponib, tot_imposta, tot_imponibp, tot_impostap, tot_lordo;
real dep_imponib, dep_imposta, dep_lordo;
@ -1065,7 +1032,7 @@ bool CG4400_application::compila_reg(const TMask& m)
if ( _data_a <= _data_da)
{
TString16 datas = format("%02d/%4d", _data_da.month(), _data_da.year());
warning_box ("La data specificata deve essere superiore al %s (ultima data di stampa specificata sul registro)", (const char*)datas);
warning_box ("Ditta %ld : la data specificata deve essere superiore al %s (ultima data di stampa specificata sul registro)", codditta, (const char*)datas);
return FALSE;
}
_stampa_ind_ditta = _tabreg->get_bool ("B9");
@ -1099,7 +1066,7 @@ bool CG4400_application::compila_reg(const TMask& m)
if (_data_a > data)
{
TString16 datas = format("%02d/%4d", data.month(), data.year());
warning_box ("La data specificata non deve essere superiore al %s (ultima data di stampa del libro giornale)", (const char*)datas);
warning_box ("Ditta %ld : la data specificata non deve essere superiore al %s (ultima data di stampa del libro giornale)", codditta, (const char*)datas);
return FALSE;
}
}
@ -1138,7 +1105,8 @@ bool CG4400_application::preprocess_print(int file, int counter)
_doc_array.destroy();
_dataregp = "";
_mov_empty = TRUE;
_primast = _u_stampata;
_esiste_riga_iva = FALSE;
_primast = _u_stampata;
_auto_intraf = FALSE;
set_print_zero();
}
@ -1182,7 +1150,7 @@ bool CG4400_application::preprocess_page(int file, int counter)
long codcf = mov.get_long(MOV_CODCF);
long numgio = mov.get_long(MOV_NUMGIO);
bool stampato = mov.get_bool(MOV_REGST);
bool intra = caus.get_bool(CAU_INTRACOM);
bool intra = caus.get_bool(CAU_INTRACOM); //sul movimento
bool autof = caus.get_bool(CAU_AUTOFATT);
TString descrcau = caus.get(CAU_DESCR);
@ -1234,6 +1202,7 @@ bool CG4400_application::preprocess_page(int file, int counter)
_nrec = riga_rmoviva();
if (_nrec > 0)
{
_esiste_riga_iva = TRUE;
for (int j = 0; j < _riga_rmi.items(); j++)
{
TRigaiva& riga = (TRigaiva&)_riga_rmi[j];
@ -1408,12 +1377,6 @@ print_action CG4400_application::postprocess_print(int file, int counter)
{
if (_tipo_stampa == 2)
++ _u_stampata;
/*
TRecnotype pos = _cur->pos();
long items = _cur->items();
if (pos < items-1)
printer().formfeed();
*/
}
/*
if (_stampa_tutti_i_registri)
@ -1463,10 +1426,10 @@ print_action CG4400_application::postprocess_print(int file, int counter)
bool CG4400_application::set_print(int n)
{
TMask m("cg4400a");
const bool ok = set_ditte(m);
int giorni_del_mese;
if (ok)
// bool ok = set_ditte(m);
if (set_ditte(m))
if (_selected.ones() > 0l)
{
_annoes = m.get_int(ANNO);//in realta' e' l'anno IVA !!!
@ -1486,7 +1449,6 @@ bool CG4400_application::set_print(int n)
// senno' data_da e' letta dal registro
else //stampe definitive
{
int giorni_del_mese;
if ( (_tipo_stampa == 1) || (_tipo_stampa == 4) )
_fino_a_mese = m.get_int(FINO_A_MESE);
else //stampa su libro unico
@ -1512,8 +1474,8 @@ bool CG4400_application::set_print(int n)
stampa_registri_IVA(m);
}
else warning_box("Nessuna ditta selezionata!");
return FALSE;
// return ok;
}
void CG4400_application::stampa_registri_IVA(const TMask& m)
@ -1531,12 +1493,14 @@ void CG4400_application::stampa_registri_IVA(const TMask& m)
if (!ok) continue;
if (!_stampa_tutti_i_registri)
_cur->set_filterfunction(filter_func);
_frequiva = _nditte->get("FREQVIVA")[0];
//_frequiva = _nditte->get("FREQVIVA")[0];
if (_tipo_stampa != 3) //stampa definitiva
ok = controlla_liquidazione() && controlla_mov();
if (!ok) continue;
// send_message();
if (!_stampa_tutti_i_registri)
{
(*_cur) = 0L;
@ -1570,7 +1534,7 @@ void CG4400_application::stampa_registri_IVA(const TMask& m)
}
if (_tipo_stampa == 1 || _tipo_stampa == 4)
if (_data_a <= _data_da)
warning_box("Il registro %s e' gia' stato stampato come bollato di %s", (const char*) _codreg, itom(_fino_a_mese));
warning_box("Ditta %ld : Il registro %s e' gia' stato stampato come bollato di %s", _nditte->get_long("CODDITTA"), (const char*) _codreg, itom(_fino_a_mese));
_pagine_stampate = _tabreg->get_int("I1");
_codatt = _tabreg->get("S8");
_attivita = desc_attivita(_codatt);
@ -1597,6 +1561,8 @@ void CG4400_application::stampa_registri_IVA(const TMask& m)
TApplication::set_firm(firm);
}
//void CG4400_application::send_message()
bool CG4400_application::set_ditte(TMask& m)
{
_selected.reset();
@ -1606,12 +1572,11 @@ bool CG4400_application::set_ditte(TMask& m)
m.field(A_CODICE).set("");
m.field(TIPO_STAMPA).set("1");
m.set_handler (TIPO_STAMPA, tipostampa_handler);
m.set_handler (A_CODICE, mask_firm_to);
m.set_handler (DA_DATA, mask_data);
m.set_handler (A_DATA, mask_data);
m.set_handler (A_DATA, mask_tipo);
m.set_handler (MESE, mask_mese);
m.set_handler (FINO_A_MESE, mask_mese);
m.set_handler (CODICE_LIB_UN, mask_cod);
m.set_handler (DLG_SELECT, mask_select);
m.set_handler (F_ANNULLA, mask_azzera);

View File

@ -37,15 +37,15 @@ class CG4400_application : public TPrintapp
TArray_sheet *_ditte;
TRecnotype _nrec;
bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri, _auto_intraf;
bool _corrispettivi;
bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri, _auto_intraf;
bool _corrispettivi, _esiste_riga_iva;
char _frequiva;
TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg;
long _n_ditte, _u_stampata, _primast;
int _fino_a_mese, _tipo_reg, _tipo_stampa, _pagine_stampate;
int _annoes, _r, _stampa_width; // riga corrente di stampa
TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg;
long _n_ditte, _u_stampata, _primast;
int _fino_a_mese, _tipo_reg, _tipo_stampa, _pagine_stampate;
int _annoes, _r, _stampa_width; // riga corrente di stampa
real _totale_doc;
TString _codreg, _desc_lib, _codatt, _attivita;
TString _codreg, _desc_lib, _codatt, _attivita;
TString _tipodoc, _descr_doc, _codlib;
TString _cofi,_cap,_paiva,_ragsoc,_comunefis,_provfis,_viafis;
@ -85,11 +85,9 @@ protected:
static bool filter_func (const TRelation * r);
static bool tipostampa_handler (TMask_field&, KEY);
static bool mask_firm_to (TMask_field&, KEY);
static bool mask_cod (TMask_field&, KEY);
static bool mask_data (TMask_field&, KEY);
static bool mask_tipo (TMask_field&, KEY);
static bool mask_mese (TMask_field&, KEY);
static bool mask_fino_a_mese (TMask_field&, KEY);
static bool mask_select (TMask_field&, KEY);

View File

@ -18,7 +18,9 @@
#define F_VERIFICA 116
#define CODICE_LIB_UN 117
#define MESE 118
#define CODICE_LIBRO_PROVA 119
#define CODICE_LIBRO_PROVA 119
#define RIF_VID 120

View File

@ -3,7 +3,7 @@
#include "cg4400a.h"
PAGE "Stampa registri IVA" -1 -1 56 16
PAGE "Stampa registri IVA" -1 -1 56 18
LISTBOX TIPO_STAMPA 1 48
@ -11,13 +11,13 @@ BEGIN
PROMPT 2 1 "Tipo "
HELP "Indicare il tipo di stampa da eseguire"
ITEM "3|Stampa di prova"
MESSAGE SHOW,3@|HIDE,1@|RESET,1@|HIDE,2@|RESET,2@|SHOW,CODICE_LIBRO
MESSAGE SHOW,3@|SHOW,CODICE_LIBRO_PROVA|SHOW,DATA_STAMPA|HIDE,1@|RESET,1@|HIDE,2@|RESET,2@
ITEM "1|Libri bollati della ditta"
MESSAGE SHOW,1@|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@
MESSAGE SHOW,1@|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA
ITEM "2|Libri unici dello studio"
MESSAGE SHOW,2@|HIDE,1@|RESET,1@|HIDE,3@|RESET,3@
MESSAGE SHOW,2@|HIDE,1@|RESET,1@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA
ITEM "4|Libri con riferimenti al libro giornale"
MESSAGE SHOW,1@|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@
MESSAGE SHOW,1@|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA
END
GROUPBOX DLG_NULL 35 5
@ -70,9 +70,15 @@ END
DATE DATA_STAMPA
BEGIN
PROMPT 28 7 "Data stampa "
<<<<<<< cg4400a.uml
FLAGS "A"
CHECKTYPE REQUIRED
WARNING "Inserire la data di stampa"
=======
HELP "Data in cui viene stampato il registro"
FLAG "AH"
GROUP 3
>>>>>>> 1.14
END
NUMBER ANNO 4
@ -80,6 +86,7 @@ BEGIN
PROMPT 2 3 "Anno "
HELP "Anno di cui si vuole stampare il registro"
FLAGS "A"
WARNING "Inserire l'anno"
CHECKTYPE REQUIRED
END
@ -112,9 +119,13 @@ BEGIN
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_PROVA CODTAB[5,7]
<<<<<<< cg4400a.uml
FLAGS "UR"
=======
//CHECKTYPE NORMAL
FLAGS "UZ"
GROUP 1
>>>>>>> 1.15
END
STRING CODICE_LIB_UN 3
@ -131,6 +142,7 @@ BEGIN
OUTPUT CODICE_LIB_UN CODTAB[5,7]
FLAGS "UR"
CHECKTYPE REQUIRED
WARNING "Inserire il codice del libro unico"
GROUP 2
END
@ -182,23 +194,32 @@ END
LISTBOX ULTIMO_MESE 10
BEGIN
PROMPT 2 11 "Ultimo mese stampa su libro unico "
PROMPT 2 12 "Ultimo mese stampa su libro unico "
FLAGS "MD"
GROUP 2
END
NUMBER ULTIMA_PAGINA 4
BEGIN
<<<<<<< cg4400a.uml
PROMPT 2 13 "Ultimo numero di pagina stampata libro unico "
=======
PROMPT 2 12 "Ultimo numero di pagina stampata libro unico "
HELP "Numero dell'ultima pagina del libro unico stampata"
>>>>>>> 1.14
FLAGS "R"
GROUP 2
END
STRING CODICE_LIBRO_IVA 3
BEGIN
<<<<<<< cg4400a.uml
PROMPT 2 14 "Eventuale codice libro IVA "
HELP "Se non viene indicato nessun cod. libro IVA, vengono stampati tutti i registri delle ditte selezionate"
=======
PROMPT 2 13 "Eventuale codice libro IVA "
HELP "Libro IVA da stampare. Vuoto = tutti"
>>>>>>> 1.14
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_IVA
@ -212,6 +233,12 @@ BEGIN
GROUP 2
END
BOOLEAN RIF_VID
BEGIN
PROMPT 2 15 "Stampa riferimenti vidimazione"
GROUP 2
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"

View File

@ -1,15 +1,16 @@
// TRigaiva_array
// Tabella per il calcolo degli imponibili Iva
#include "cglib03.h"
bool TRigaiva_array::add_riga(const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const int tipocr, const real& imponibilep, const real& impostap)
bool TRigaiva_array::add_riga(const real& imponibile, const real& imposta, const real& imponibilep, const real& impostap, const char* codiva, const int tipodet, const int tipocr, bool intra, const int tipoatt)
{
bool found = FALSE;
for (int i = 0; i < items(); i++)
{
TRigaiva& r = riga(i);
if (r._codiva==codiva && tipodet==r._tipodet && tipocr==r._tipocr)
if (r._codiva==codiva && tipodet==r._tipodet && tipocr==r._tipocr && tipoatt==r._tipoatt)
{
found = TRUE;
r._imponibile += imponibile;
@ -20,30 +21,32 @@ bool TRigaiva_array::add_riga(const real& imponibile, const real& imposta, const
}
if (!found)
{
TRigaiva* r = new TRigaiva(imponibile,imposta,codiva,tipodet,tipocr,imponibilep,impostap);
TRigaiva* r = new TRigaiva(imponibile,imposta,imponibilep,impostap,codiva,tipodet,tipocr,intra,tipoatt);
add(r);
}
return found;
}
bool TRiga_array::add_riga(const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap)
bool TRiga_array::add_riga(const real& imponibile, const real& imposta, const real& implordo, const real& imponibilep, const real& impostap, const real& implordop, const char* codiva)
{
bool found = FALSE;
for (int i = 0; i < items(); i++)
{
TRiga& r = riga(i);
if (r._codiva==codiva && r._tipodoc==tipodoc)
if (r._codiva==codiva)
{
found = TRUE;
r._imponibile += imponibile;
r._imposta += imposta;
r._implordo += implordo;
r._imponibilep += imponibilep;
r._impostap += impostap;
r._implordop += implordop;
}
}
if (!found)
{
TRiga* r = new TRiga(imponibile,imposta,codiva,tipodoc,imponibilep,impostap);
{
TRiga* r = new TRiga(imponibile,imposta,implordo,imponibilep,impostap,implordop,codiva);
add(r);
}
return found;

View File

@ -1,83 +1,86 @@
// cglib03.h
// TRigaiva_array
// Tabella per il calcolo degli imponibili Iva
#ifndef __CGLIB03_H
#define __CGLIB03_H
#ifndef __REAL_H
#include <real.h>
#endif
#ifndef __STRINGS_H
#include <strings.h>
#endif
struct TDociva : public TObject
{
TString _descrdoc;
real _totdociva;
int _ndoc;
TDociva(const char* _descrdociva, const real& _importo,const int _natdoc):_descrdoc(_descrdociva),_totdociva(_importo),_ndoc(_natdoc)
{}
};
class TDociva_array : public TArray
{
public:
bool add_riga(const char* _descrdociva,const real& _importo,const int _natdoc);
TDociva& riga(int i) { return (TDociva&)(*this)[i]; }
};
struct TRigaiva : public TObject
{
real _imponibile, _imposta, _imponibilep, _impostap; //imponibili, imposte del periodo e progressivi
TString _codiva;
int _tipodet, _tipocr;
TRigaiva (const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const int tipocr, const real& imponibilep, const real& impostap):
_imponibile(imponibile),_imposta(imposta),_codiva(codiva),_tipodet(tipodet),_tipocr(tipocr),_imponibilep(imponibilep),_impostap(impostap)
{}
};
class TRigaiva_array : public TArray
{
public:
bool add_riga(const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const int tipocr, const real& imponibilep, const real& impostap);
TRigaiva& riga(int i) { return (TRigaiva&)(*this)[i]; }
};
struct TTipodoc : public TObject
{
TString _tipodoc, _descrdoc;
real _totdoc;
TTipodoc (const char* tipodoc, const char* descrdoc, const real& totdoc):
_tipodoc(tipodoc),_descrdoc(descrdoc),_totdoc(totdoc) {}
};
class TTipodoc_array : public TArray
{
public:
bool add_riga(const char* tipodoc, const char* descrdoc, const real& totdoc);
TTipodoc& riga(int i) { return (TTipodoc&)(*this)[i]; }
};
struct TRiga : public TObject
{
real _imponibile, _imposta, _imponibilep, _impostap;
TString _codiva, _tipodoc;
TRiga (const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap):
_imponibile(imponibile),_imposta(imposta),_codiva(codiva),_tipodoc(tipodoc),_imponibilep(imponibilep),_impostap(impostap) {}
};
class TRiga_array : public TArray
{
public:
bool add_riga(const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap);
TRiga& riga(int i) { return (TRiga&)(*this)[i]; }
};
#endif
// cglib03.h
// TRigaiva_array
// Tabella per il calcolo degli imponibili Iva
#ifndef __CGLIB03_H
#define __CGLIB03_H
#ifndef __REAL_H
#include <real.h>
#endif
#ifndef __STRINGS_H
#include <strings.h>
#endif
struct TDociva : public TObject
{
TString _descrdoc;
real _totdociva;
int _ndoc;
TDociva(const char* _descrdociva, const real& _importo,const int _natdoc):_descrdoc(_descrdociva),_totdociva(_importo),_ndoc(_natdoc)
{}
};
class TDociva_array : public TArray
{
public:
bool add_riga(const char* _descrdociva,const real& _importo,const int _natdoc);
TDociva& riga(int i) { return (TDociva&)(*this)[i]; }
};
struct TRigaiva : public TObject
{
real _imponibile, _imposta;
real _imponibilep, _impostap;
TString _codiva;
int _tipodet, _tipocr, _tipoatt;
bool _intra;
TRigaiva (const real& imponibile, const real& imposta, const real& imponibilep, const real& impostap, const char* codiva, const int tipodet, const int tipocr, bool intra, const int tipoatt):
_imponibile(imponibile),_imposta(imposta),_imponibilep(imponibilep),_impostap(impostap),_codiva(codiva),_tipodet(tipodet),_tipocr(tipocr),_intra(intra),_tipoatt(tipoatt)
{}
};
class TRigaiva_array : public TArray
{
public:
bool add_riga(const real& imponibile, const real& imposta, const real& imponibilep, const real& impostap, const char* codiva, const int tipodet, const int tipocr, bool intra, const int tipoatt = 0);
TRigaiva& riga(int i) { return (TRigaiva&)(*this)[i]; }
};
struct TTipodoc : public TObject
{
TString _tipodoc, _descrdoc;
real _totdoc;
TTipodoc (const char* tipodoc, const char* descrdoc, const real& totdoc):
_tipodoc(tipodoc),_descrdoc(descrdoc),_totdoc(totdoc) {}
};
class TTipodoc_array : public TArray
{
public:
bool add_riga(const char* tipodoc, const char* descrdoc, const real& totdoc);
TTipodoc& riga(int i) { return (TTipodoc&)(*this)[i]; }
};
struct TRiga : public TObject
{
real _imponibile, _imposta, _implordo; //totali del periodo
real _imponibilep, _impostap, _implordop; //totali progressivi
TString _codiva;
TRiga (const real& imponibile, const real& imposta, const real& implordo, const real& imponibilep, const real& impostap, const real& implordop, const char* codiva):
_imponibile(imponibile),_imposta(imposta),_implordo(implordo),_codiva(codiva),_imponibilep(imponibilep),_impostap(impostap),_implordop(implordop) {}
};
class TRiga_array : public TArray
{
public:
bool add_riga(const real& imponibile, const real& imposta, const real& implordo, const real& imponibilep, const real& impostap, const real& implordop, const char* codiva);
TRiga& riga(int i) { return (TRiga&)(*this)[i]; }
};
#endif