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

View File

@ -48,9 +48,9 @@ BEGIN
PROMPT 30 3 "Scelta stampa " PROMPT 30 3 "Scelta stampa "
HELP "Indicare il tipo di stampa" HELP "Indicare il tipo di stampa"
ITEM "0|Lista movimenti" ITEM "0|Lista movimenti"
MESSAGE SHOW,F_CONTROLLO|SHOW,F_REGISTROFIN|SHOW,F_REGISTROINI|HIDE,1@|RESET,1@ 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" 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 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 END
@ -95,21 +95,35 @@ END
DATE F_DATAINI DATE F_DATAINI
BEGIN BEGIN
PROMPT 16 11 "Stampa mov. dalla data " <<<<<<< cg3100a.uml
PROMPT 19 11 "Stampa mov. dalla data "
HELP "Data da cui iniziare la stampa" 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 GROUP 3
END END
DATE F_DATAFIN DATE F_DATAFIN
BEGIN BEGIN
PROMPT 52 11 "alla data " <<<<<<< cg3100a.uml
PROMPT 55 11 "alla data "
HELP "Data fino a cui stampare i movimenti" HELP "Data fino a cui stampare i movimenti"
=======
PROMPT 52 11 "alla data "
>>>>>>> 1.12
GROUP 3 GROUP 3
END END
NUMBER F_NUMEROINI 7 NUMBER F_NUMEROINI 7
BEGIN 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 " PROMPT 16 12 "Stampa mov. dal numero "
>>>>>>> 1.12
USE LF_MOV KEY 1 USE LF_MOV KEY 1
INPUT NUMREG F_NUMEROINI INPUT NUMREG F_NUMEROINI
DISPLAY "Numero@6" NUMREG DISPLAY "Numero@6" NUMREG
@ -121,12 +135,16 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "R" FLAGS "R"
GROUP 2 GROUP 2
HELP "Numero del movimento da cui iniziare la stampa"
END END
NUMBER F_NUMEROFIN 7 NUMBER F_NUMEROFIN 7
BEGIN BEGIN
<<<<<<< cg3100a.uml
PROMPT 55 12 "al numero "
HELP "Numero del movimenti fino cui fare la stampa"
=======
PROMPT 52 12 "al numero " PROMPT 52 12 "al numero "
>>>>>>> 1.12
COPY USE F_NUMEROINI COPY USE F_NUMEROINI
INPUT NUMREG F_NUMEROFIN INPUT NUMREG F_NUMEROFIN
COPY DISPLAY F_NUMEROINI COPY DISPLAY F_NUMEROINI
@ -136,7 +154,6 @@ BEGIN
NUM_EXPR {(#F_NUMEROFIN==0)||(#F_NUMEROFIN>=#F_NUMEROINI)} NUM_EXPR {(#F_NUMEROFIN==0)||(#F_NUMEROFIN>=#F_NUMEROINI)}
WARNING "Limite superiore errato" WARNING "Limite superiore errato"
GROUP 2 GROUP 2
HELP "Numero del movimenti fino cui fare la stampa"
END END
STRING F_CAUSALEINI 3 STRING F_CAUSALEINI 3
@ -147,7 +164,7 @@ BEGIN
DISPLAY "Codice causale" CODCAUS DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEINI CODCAUS OUTPUT F_CAUSALEINI CODCAUS
FLAGS "UZ" FLAGS "UR"
HELP "Causale di inizio stampa: vuoto = inizio archivio" HELP "Causale di inizio stampa: vuoto = inizio archivio"
END END
@ -159,7 +176,7 @@ BEGIN
DISPLAY "Codice causale" CODCAUS DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEFIN CODCAUS OUTPUT F_CAUSALEFIN CODCAUS
FLAGS "UZ" FLAGS "UR"
HELP "Causale di fine stampa: vuoto = fine archivio" HELP "Causale di fine stampa: vuoto = fine archivio"
END END
@ -173,7 +190,7 @@ BEGIN
DISPLAY "Cod. registro iva" CODTAB[5,7] DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0 DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROINI CODTAB[5,7] OUTPUT F_REGISTROINI CODTAB[5,7]
FLAGS "UZ" FLAGS "UR"
//CHECKTYPE NORMAL //CHECKTYPE NORMAL
HELP "Codice registro iva di inizio stampa: vuoto = inizio archivio" HELP "Codice registro iva di inizio stampa: vuoto = inizio archivio"
END END
@ -188,7 +205,7 @@ BEGIN
DISPLAY "Cod. registro iva" CODTAB[5,7] DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0 DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROFIN CODTAB[5,7] OUTPUT F_REGISTROFIN CODTAB[5,7]
FLAGS "UZ" FLAGS "UR"
//CHECKTYPE NORMAL //CHECKTYPE NORMAL
HELP "Codice registro iva di fine stampa: vuoto = fine archivio" HELP "Codice registro iva di fine stampa: vuoto = fine archivio"
END END

View File

@ -93,6 +93,8 @@ BEGIN
DISPLAY "Codice" CODCF DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEFIN CODCF OUTPUT F_CODICEFIN CODCF
NUM_EXPR {(#F_CODICEFIN==0)||(#F_CODICEFIN>=#F_CODICEINI)}
WARNING "Limite superiore errato"
FLAGS "R" FLAGS "R"
END END
@ -121,6 +123,8 @@ BEGIN
DISPLAY "Codice" CODCF DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEFIN1 CODCF OUTPUT F_CODICEFIN1 CODCF
NUM_EXPR {(#F_CODICEFIN1==0)||(#F_CODICEFIN1>=#F_CODICEINI1)}
WARNING "Limite superiore errato"
FLAGS "R" FLAGS "R"
END END
@ -128,7 +132,7 @@ BOOLEAN F_CAMBIO
BEGIN BEGIN
//GROUP 2 //GROUP 2
PROMPT 2 10 "Cambio pagina per cliente/fornitore " PROMPT 2 10 "Cambio pagina per cliente/fornitore "
HELP "Indicare se cambiare pagina nel passaggio da clienti a fornitori" HELP "Indicare se cambiare pagina nel passaggio da cliente/fornitore a cliente/fornitore"
END END
BOOLEAN F_STAMPAMOVP BOOLEAN F_STAMPAMOVP

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -12,3 +12,6 @@
#define ANNO_ESER 108 #define ANNO_ESER 108
#define STAMPA_WIDTH 109 #define STAMPA_WIDTH 109
#define STAMPA_LEN 110 #define STAMPA_LEN 110
#define F_CODDITTA 111
#define F_RAGSOC 112

View File

@ -1,10 +1,34 @@
#include "cg3400a.h" #include "cg3400a.h"
PAGE "Stampa Libro Giornale" -1 -1 70 15 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 STRING CODREG 3
BEGIN BEGIN
PROMPT 1 1 "Codice registro " PROMPT 1 4 "Codice registro "
HELP "Codice del libro giornale da stampare" HELP "Codice del libro giornale da stampare"
USE REG SELECT (I0 = 5) || (I0 = 4) USE REG SELECT (I0 = 5) || (I0 = 4)
// INPUT CODTAB[1,4] ANNO_ESER // INPUT CODTAB[1,4] ANNO_ESER
@ -13,95 +37,89 @@ BEGIN
DISPLAY "Codice" CODTAB[5,7] DISPLAY "Codice" CODTAB[5,7]
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Tipo" I0 DISPLAY "Tipo" I0
OUTPUT ANNO_ESER CODTAB[1,4] // OUTPUT ANNO_ESER CODTAB[1,4]
OUTPUT CODREG CODTAB[5,7] OUTPUT CODREG CODTAB[5,7]
OUTPUT REG_DESC S0 OUTPUT REG_DESC S0
OUTPUT PAGINA_DA I1 // OUTPUT PAGINA_DA I1
// OUTPUT DATA_DA D0 // OUTPUT DATA_DA D0
// OUTPUT DATA_A D1 // OUTPUT DATA_A D1
// CHECKTYPE NORMAL // CHECKTYPE NORMAL
WARNING "Registro inesistente" WARNING "Registro inesistente"
FLAGS "UZ" FLAGS "U"
END END
NUMBER ANNO_ESER 4 NUMBER ANNO_ESER 4
BEGIN BEGIN
PROMPT 30 1 "Esercizio " PROMPT 30 5 "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" FLAGS "ZH"
END END
STRING REG_DESC 50 STRING REG_DESC 50
BEGIN BEGIN
PROMPT 1 3 "Descrizione: " // PROMPT 1 6 "Descrizione "
PROMPT 25 4 ""
FLAGS "D" FLAGS "D"
END 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 DATE DATA_DA
BEGIN BEGIN
PROMPT 2 10 "Dalla data " PROMPT 1 6 "Dalla data "
HELP "Data da cui iniziare la stampa" HELP "Stampa i movimenti a partire dalla data specificata"
END END
DATE DATA_A DATE DATA_A
BEGIN BEGIN
PROMPT 2 11 "Alla data " PROMPT 40 6 "Alla data "
HELP "Data a cui terminare la stampa" HELP "Stampa i movimenti fino alla data specificata"
// VALIDATE DATE_CMP_FUNC >= DATA_DA // VALIDATE DATE_CMP_FUNC >= DATA_DA
WARNING "Specificare la data di fine stampa" WARNING "Specificare la data di fine stampa"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END 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 BOOLEAN STAMPA_DEF
BEGIN BEGIN
PROMPT 34 10 "Stampa definitiva" PROMPT 2 13 "Stampa definitiva su bollato"
HELP "Indicare se stampare su bollato" HELP "Seleziona la stampa su bollato oppure, se vuoto, la stampa di prova"
MESSAGE TRUE DISABLE,DATA_DA | CLEAR, DATA_DA MESSAGE TRUE DISABLE,DATA_DA | CLEAR, DATA_DA
MESSAGE FALSE ENABLE,DATA_DA MESSAGE FALSE ENABLE,DATA_DA
END END

View File

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

View File

@ -116,15 +116,43 @@ bool CG4400_application::mask_firm_to (TMask_field& f, KEY k)
bool CG4400_application::mask_mese (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) if (k == K_ENTER)
{ {
int mese = f.mask().get_int(MESE); if (id == MESE) //Per stampa su libro unico
{
int umese = f.mask().get_int(ULTIMO_MESE); int umese = f.mask().get_int(ULTIMO_MESE);
if (mese != umese+1) if (mese != umese+1)
return f.warning_box ("Le stampe devono essere richieste mese per mese!\n" 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)); "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; 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) 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); const int anno = f.mask().get_int(ANNO);
TDate data(f.get()); TDate data(f.get());
@ -165,18 +193,11 @@ 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"); f.warning_box("L'anno delle date limite deve essere uguale all'anno iva specificato");
return FALSE; return FALSE;
} }
} if (f.dlg() == A_DATA)
return TRUE; if (data.ok)
}
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 ) if ( data.day() == 31 && data.month() == 12 )
f.mask().show (TIPO_RIEPILOGATIVO); f.mask().show (TIPO_RIEPILOGATIVO);
else f.mask().hide (TIPO_RIEPILOGATIVO);
} }
return TRUE; 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) const char * CG4400_application::descr_doc(const char * tipo)
{ {
TTable tab_tpd("%TPD"); TTable tab_tpd("%TPD");
@ -757,7 +722,8 @@ int CG4400_application::stampa_prospetto()
else else
rr = r; rr = r;
if (_nrec > 0) //numero records di rmoviva //if (_nrec > 0) //numero records di rmoviva
if (_esiste_riga_iva)
{ {
if (_corrispettivi) if (_corrispettivi)
set_row(++rr, "@26g------------------ P E R I O D O -------------------"); 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(); 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 tot_imponib, tot_imposta, tot_imponibp, tot_impostap, tot_lordo;
real dep_imponib, dep_imposta, dep_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) if ( _data_a <= _data_da)
{ {
TString16 datas = format("%02d/%4d", _data_da.month(), _data_da.year()); 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; return FALSE;
} }
_stampa_ind_ditta = _tabreg->get_bool ("B9"); _stampa_ind_ditta = _tabreg->get_bool ("B9");
@ -1099,7 +1066,7 @@ bool CG4400_application::compila_reg(const TMask& m)
if (_data_a > data) if (_data_a > data)
{ {
TString16 datas = format("%02d/%4d", data.month(), data.year()); 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; return FALSE;
} }
} }
@ -1138,6 +1105,7 @@ bool CG4400_application::preprocess_print(int file, int counter)
_doc_array.destroy(); _doc_array.destroy();
_dataregp = ""; _dataregp = "";
_mov_empty = TRUE; _mov_empty = TRUE;
_esiste_riga_iva = FALSE;
_primast = _u_stampata; _primast = _u_stampata;
_auto_intraf = FALSE; _auto_intraf = FALSE;
set_print_zero(); set_print_zero();
@ -1182,7 +1150,7 @@ bool CG4400_application::preprocess_page(int file, int counter)
long codcf = mov.get_long(MOV_CODCF); long codcf = mov.get_long(MOV_CODCF);
long numgio = mov.get_long(MOV_NUMGIO); long numgio = mov.get_long(MOV_NUMGIO);
bool stampato = mov.get_bool(MOV_REGST); 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); bool autof = caus.get_bool(CAU_AUTOFATT);
TString descrcau = caus.get(CAU_DESCR); TString descrcau = caus.get(CAU_DESCR);
@ -1234,6 +1202,7 @@ bool CG4400_application::preprocess_page(int file, int counter)
_nrec = riga_rmoviva(); _nrec = riga_rmoviva();
if (_nrec > 0) if (_nrec > 0)
{ {
_esiste_riga_iva = TRUE;
for (int j = 0; j < _riga_rmi.items(); j++) for (int j = 0; j < _riga_rmi.items(); j++)
{ {
TRigaiva& riga = (TRigaiva&)_riga_rmi[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) if (_tipo_stampa == 2)
++ _u_stampata; ++ _u_stampata;
/*
TRecnotype pos = _cur->pos();
long items = _cur->items();
if (pos < items-1)
printer().formfeed();
*/
} }
/* /*
if (_stampa_tutti_i_registri) 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) bool CG4400_application::set_print(int n)
{ {
TMask m("cg4400a"); TMask m("cg4400a");
int giorni_del_mese;
const bool ok = set_ditte(m); // bool ok = set_ditte(m);
if (set_ditte(m))
if (ok)
if (_selected.ones() > 0l) if (_selected.ones() > 0l)
{ {
_annoes = m.get_int(ANNO);//in realta' e' l'anno IVA !!! _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 // senno' data_da e' letta dal registro
else //stampe definitive else //stampe definitive
{ {
int giorni_del_mese;
if ( (_tipo_stampa == 1) || (_tipo_stampa == 4) ) if ( (_tipo_stampa == 1) || (_tipo_stampa == 4) )
_fino_a_mese = m.get_int(FINO_A_MESE); _fino_a_mese = m.get_int(FINO_A_MESE);
else //stampa su libro unico else //stampa su libro unico
@ -1512,8 +1474,8 @@ bool CG4400_application::set_print(int n)
stampa_registri_IVA(m); stampa_registri_IVA(m);
} }
else warning_box("Nessuna ditta selezionata!"); else warning_box("Nessuna ditta selezionata!");
return FALSE; return FALSE;
// return ok;
} }
void CG4400_application::stampa_registri_IVA(const TMask& m) 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 (!ok) continue;
if (!_stampa_tutti_i_registri) if (!_stampa_tutti_i_registri)
_cur->set_filterfunction(filter_func); _cur->set_filterfunction(filter_func);
_frequiva = _nditte->get("FREQVIVA")[0]; //_frequiva = _nditte->get("FREQVIVA")[0];
if (_tipo_stampa != 3) //stampa definitiva if (_tipo_stampa != 3) //stampa definitiva
ok = controlla_liquidazione() && controlla_mov(); ok = controlla_liquidazione() && controlla_mov();
if (!ok) continue; if (!ok) continue;
// send_message();
if (!_stampa_tutti_i_registri) if (!_stampa_tutti_i_registri)
{ {
(*_cur) = 0L; (*_cur) = 0L;
@ -1570,7 +1534,7 @@ void CG4400_application::stampa_registri_IVA(const TMask& m)
} }
if (_tipo_stampa == 1 || _tipo_stampa == 4) if (_tipo_stampa == 1 || _tipo_stampa == 4)
if (_data_a <= _data_da) 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"); _pagine_stampate = _tabreg->get_int("I1");
_codatt = _tabreg->get("S8"); _codatt = _tabreg->get("S8");
_attivita = desc_attivita(_codatt); _attivita = desc_attivita(_codatt);
@ -1597,6 +1561,8 @@ void CG4400_application::stampa_registri_IVA(const TMask& m)
TApplication::set_firm(firm); TApplication::set_firm(firm);
} }
//void CG4400_application::send_message()
bool CG4400_application::set_ditte(TMask& m) bool CG4400_application::set_ditte(TMask& m)
{ {
_selected.reset(); _selected.reset();
@ -1606,12 +1572,11 @@ bool CG4400_application::set_ditte(TMask& m)
m.field(A_CODICE).set(""); m.field(A_CODICE).set("");
m.field(TIPO_STAMPA).set("1"); m.field(TIPO_STAMPA).set("1");
m.set_handler (TIPO_STAMPA, tipostampa_handler);
m.set_handler (A_CODICE, mask_firm_to); m.set_handler (A_CODICE, mask_firm_to);
m.set_handler (DA_DATA, mask_data); m.set_handler (DA_DATA, mask_data);
m.set_handler (A_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 (MESE, mask_mese);
m.set_handler (FINO_A_MESE, mask_mese);
m.set_handler (CODICE_LIB_UN, mask_cod); m.set_handler (CODICE_LIB_UN, mask_cod);
m.set_handler (DLG_SELECT, mask_select); m.set_handler (DLG_SELECT, mask_select);
m.set_handler (F_ANNULLA, mask_azzera); m.set_handler (F_ANNULLA, mask_azzera);

View File

@ -38,7 +38,7 @@ class CG4400_application : public TPrintapp
TRecnotype _nrec; TRecnotype _nrec;
bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri, _auto_intraf; bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri, _auto_intraf;
bool _corrispettivi; bool _corrispettivi, _esiste_riga_iva;
char _frequiva; char _frequiva;
TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg; TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg;
long _n_ditte, _u_stampata, _primast; long _n_ditte, _u_stampata, _primast;
@ -85,11 +85,9 @@ protected:
static bool filter_func (const TRelation * r); 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_firm_to (TMask_field&, KEY);
static bool mask_cod (TMask_field&, KEY); static bool mask_cod (TMask_field&, KEY);
static bool mask_data (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_mese (TMask_field&, KEY);
static bool mask_fino_a_mese (TMask_field&, KEY); static bool mask_fino_a_mese (TMask_field&, KEY);
static bool mask_select (TMask_field&, KEY); static bool mask_select (TMask_field&, KEY);

View File

@ -19,6 +19,8 @@
#define CODICE_LIB_UN 117 #define CODICE_LIB_UN 117
#define MESE 118 #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" #include "cg4400a.h"
PAGE "Stampa registri IVA" -1 -1 56 16 PAGE "Stampa registri IVA" -1 -1 56 18
LISTBOX TIPO_STAMPA 1 48 LISTBOX TIPO_STAMPA 1 48
@ -11,13 +11,13 @@ BEGIN
PROMPT 2 1 "Tipo " PROMPT 2 1 "Tipo "
HELP "Indicare il tipo di stampa da eseguire" HELP "Indicare il tipo di stampa da eseguire"
ITEM "3|Stampa di prova" 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" 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" 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" 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 END
GROUPBOX DLG_NULL 35 5 GROUPBOX DLG_NULL 35 5
@ -70,9 +70,15 @@ END
DATE DATA_STAMPA DATE DATA_STAMPA
BEGIN BEGIN
PROMPT 28 7 "Data stampa " 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" HELP "Data in cui viene stampato il registro"
FLAG "AH" FLAG "AH"
GROUP 3 GROUP 3
>>>>>>> 1.14
END END
NUMBER ANNO 4 NUMBER ANNO 4
@ -80,6 +86,7 @@ BEGIN
PROMPT 2 3 "Anno " PROMPT 2 3 "Anno "
HELP "Anno di cui si vuole stampare il registro" HELP "Anno di cui si vuole stampare il registro"
FLAGS "A" FLAGS "A"
WARNING "Inserire l'anno"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
@ -112,9 +119,13 @@ BEGIN
DISPLAY "Descrizione @40" S0 DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4] OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_PROVA CODTAB[5,7] OUTPUT CODICE_LIBRO_PROVA CODTAB[5,7]
<<<<<<< cg4400a.uml
FLAGS "UR"
=======
//CHECKTYPE NORMAL //CHECKTYPE NORMAL
FLAGS "UZ" FLAGS "UZ"
GROUP 1 GROUP 1
>>>>>>> 1.15
END END
STRING CODICE_LIB_UN 3 STRING CODICE_LIB_UN 3
@ -131,6 +142,7 @@ BEGIN
OUTPUT CODICE_LIB_UN CODTAB[5,7] OUTPUT CODICE_LIB_UN CODTAB[5,7]
FLAGS "UR" FLAGS "UR"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Inserire il codice del libro unico"
GROUP 2 GROUP 2
END END
@ -182,23 +194,32 @@ END
LISTBOX ULTIMO_MESE 10 LISTBOX ULTIMO_MESE 10
BEGIN BEGIN
PROMPT 2 11 "Ultimo mese stampa su libro unico " PROMPT 2 12 "Ultimo mese stampa su libro unico "
FLAGS "MD" FLAGS "MD"
GROUP 2 GROUP 2
END END
NUMBER ULTIMA_PAGINA 4 NUMBER ULTIMA_PAGINA 4
BEGIN BEGIN
<<<<<<< cg4400a.uml
PROMPT 2 13 "Ultimo numero di pagina stampata libro unico "
=======
PROMPT 2 12 "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" HELP "Numero dell'ultima pagina del libro unico stampata"
>>>>>>> 1.14
FLAGS "R" FLAGS "R"
GROUP 2 GROUP 2
END END
STRING CODICE_LIBRO_IVA 3 STRING CODICE_LIBRO_IVA 3
BEGIN 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 " PROMPT 2 13 "Eventuale codice libro IVA "
HELP "Libro IVA da stampare. Vuoto = tutti" HELP "Libro IVA da stampare. Vuoto = tutti"
>>>>>>> 1.14
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111) USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_IVA INPUT CODTAB[5,7] CODICE_LIBRO_IVA
@ -212,6 +233,12 @@ BEGIN
GROUP 2 GROUP 2
END END
BOOLEAN RIF_VID
BEGIN
PROMPT 2 15 "Stampa riferimenti vidimazione"
GROUP 2
END
BUTTON DLG_PRINT 10 2 BUTTON DLG_PRINT 10 2
BEGIN BEGIN
PROMPT -12 -1 "~Stampa" PROMPT -12 -1 "~Stampa"

View File

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

View File

@ -32,19 +32,21 @@ public:
struct TRigaiva : public TObject struct TRigaiva : public TObject
{ {
real _imponibile, _imposta, _imponibilep, _impostap; //imponibili, imposte del periodo e progressivi real _imponibile, _imposta;
real _imponibilep, _impostap;
TString _codiva; TString _codiva;
int _tipodet, _tipocr; int _tipodet, _tipocr, _tipoatt;
bool _intra;
TRigaiva (const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const int tipocr, const real& imponibilep, const real& impostap): 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),_codiva(codiva),_tipodet(tipodet),_tipocr(tipocr),_imponibilep(imponibilep),_impostap(impostap) _imponibile(imponibile),_imposta(imposta),_imponibilep(imponibilep),_impostap(impostap),_codiva(codiva),_tipodet(tipodet),_tipocr(tipocr),_intra(intra),_tipoatt(tipoatt)
{} {}
}; };
class TRigaiva_array : public TArray class TRigaiva_array : public TArray
{ {
public: 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); 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]; } TRigaiva& riga(int i) { return (TRigaiva&)(*this)[i]; }
}; };
@ -66,17 +68,18 @@ public:
struct TRiga : public TObject struct TRiga : public TObject
{ {
real _imponibile, _imposta, _imponibilep, _impostap; real _imponibile, _imposta, _implordo; //totali del periodo
TString _codiva, _tipodoc; real _imponibilep, _impostap, _implordop; //totali progressivi
TString _codiva;
TRiga (const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap): 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),_codiva(codiva),_tipodoc(tipodoc),_imponibilep(imponibilep),_impostap(impostap) {} _imponibile(imponibile),_imposta(imposta),_implordo(implordo),_codiva(codiva),_imponibilep(imponibilep),_impostap(impostap),_implordop(implordop) {}
}; };
class TRiga_array : public TArray class TRiga_array : public TArray
{ {
public: public:
bool add_riga(const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap); 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]; } TRiga& riga(int i) { return (TRiga&)(*this)[i]; }
}; };