Corrrzioni guido (da commentare)

git-svn-id: svn://10.65.10.50/trunk@388 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-10-14 19:14:40 +00:00
parent 8a2c77f75c
commit 41cac87df5
15 changed files with 383 additions and 444 deletions

View File

@ -147,10 +147,10 @@ BEGIN
ITEM "Co.@3" ITEM "Co.@3"
ITEM "Sottoc.@6" ITEM "Sottoc.@6"
ITEM "D/A@1" ITEM "D/A@1"
ITEM "Descrizione@50" ITEM "Descrizione conto@50"
ITEM "Descr. agg." ITEM "Descr. agg.@5"
ITEM "Iva" ITEM "Iva"
ITEM "Cod.Iva" ITEM "Cod.Iva@4"
END END
ENDPAGE ENDPAGE
@ -159,7 +159,7 @@ PAGE "" -1 -1 77 20
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 0 "@BCampi obbligatori in caricamento documenti" PROMPT 1 0 "@BCampi obbligatori in immissione documenti"
END END
BOOLEAN F_DATA_DOC BOOLEAN F_DATA_DOC

View File

@ -213,6 +213,7 @@ bool TPrimanota_application::changing_mask(int mode)
if (mode == MODE_QUERY) if (mode == MODE_QUERY)
{ {
const bool flag = _mode != MODE_QUERY; const bool flag = _mode != MODE_QUERY;
if (flag && _iva != nessuna_iva) if (flag && _iva != nessuna_iva)
{ {
WINDOW w = ivas().parent(); WINDOW w = ivas().parent();
@ -221,6 +222,7 @@ bool TPrimanota_application::changing_mask(int mode)
process_events(); process_events();
show_window(w, FALSE); show_window(w, FALSE);
} }
return flag; return flag;
} }
_iva = iva_errata; _iva = iva_errata;
@ -304,15 +306,14 @@ void TPrimanota_application::init_mask(TMask& m)
if (valuta) if (valuta)
m.set(F_VISVAL, "X"); m.set(F_VISVAL, "X");
m.disable(DLG_NEWREC); // m.disable(DLG_NEWREC);
} }
void TPrimanota_application::init_query_mode(TMask& m) void TPrimanota_application::init_query_mode(TMask& m)
{ {
read_firm_params(); read_firm_params();
enable_menu_item(M_FILE_PRINT); enable_menu_item(M_FILE_PRINT);
m.enable(DLG_NEWREC); // m.enable(DLG_NEWREC);
} }
@ -335,16 +336,30 @@ void TPrimanota_application::fill_sheet(TMask& m) const
// Certified 100% // Certified 100%
const char* TPrimanota_application::get_next_key() const char* TPrimanota_application::get_next_key()
{ {
return format("%d|%ld", F_NUMREG, _lastreg+1); TToken_string k(80);
k.add(F_NUMREG); k.add(_lastreg+1);
TMask& m = curr_mask();
if (!m.query_mode())
{
k.add(F_CODCAUS); k.add(m.get(F_CODCAUS)); // Ricopia causale
k.add(F_DATAREG); k.add(m.get(F_DATAREG)); // data operazione
k.add(F_DATACOMP); k.add(m.get(F_DATACOMP)); // competenza
k.add(F_DATADOC); k.add(m.get(F_DATADOC)); // documento
const long n = m.get_long(F_NUMDOC);
if (n > 0)
{
k.add(F_NUMDOC); k.add(n+1); // incrementa numero documento
}
}
return strcpy(__tmp_string, k);
} }
void TPrimanota_application::init_insert_mode(TMask& m) void TPrimanota_application::init_insert_mode(TMask& m)
{ {
m.set(F_DATAREG, _msk[0]->get(F_DATAREG));
m.set(F_DATACOMP, _msk[0]->get(F_DATACOMP));
m.set(F_ANNOES, _msk[0]->get(F_ANNOES));
m.set(F_ANNOIVA, _msk[0]->get(F_ANNOIVA));
if (iva() != nessuna_iva) if (iva() != nessuna_iva)
occas_mask().reset(); occas_mask().reset();

View File

@ -120,6 +120,8 @@ BEGIN
INPUT CODCAUS F_CODCAUS INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Tipo" TIPODOC
DISPLAY "Registro" REG
OUTPUT F_CODCAUS CODCAUS OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCRCAUS DESCR OUTPUT F_DESCRCAUS DESCR
CHECKTYPE NORMAL CHECKTYPE NORMAL
@ -174,14 +176,14 @@ BEGIN
PROMPT 0 10 "" PROMPT 0 10 ""
ITEM "Dare@15" ITEM "Dare@15"
ITEM "Avere@15" ITEM "Avere@15"
ITEM " @1" ITEM "C/F@1"
ITEM "Gr." ITEM "Gr."
ITEM "Co." ITEM "Co."
ITEM "Sottoc.@6" ITEM "Sottoc.@6"
ITEM "Descrizione conto@50" ITEM "Descrizione conto@50"
ITEM "Codice" ITEM "Codice"
ITEM "Descrizione riga@50" ITEM "Descrizione riga@50"
ITEM " @1" ITEM "C/F@1"
ITEM "Gr./c@3" ITEM "Gr./c@3"
ITEM "Co./c@3" ITEM "Co./c@3"
ITEM "Sottoc./c@6" ITEM "Sottoc./c@6"

View File

@ -66,7 +66,7 @@ DATE F_DATAREG
BEGIN BEGIN
PROMPT 1 3 "Data operazione " PROMPT 1 3 "Data operazione "
FIELD LF_MOV->DATAREG FIELD LF_MOV->DATAREG
MESSAGE COPY,H_DATAREG|COPY,F_DATA74TER MESSAGE COPY,H_DATAREG|COPY,F_DATA74TER|COPY,F_ANNOIVA,7,10
END END
DATE F_DATACOMP DATE F_DATACOMP
@ -95,7 +95,7 @@ NUMBER F_ANNOES 4
BEGIN BEGIN
PROMPT 32 4 "Anno esercizio " PROMPT 32 4 "Anno esercizio "
FIELD LF_MOV->ANNOES FIELD LF_MOV->ANNOES
FLAGS "DGRZ" FLAGS "DGZ"
MESSAGE COPY,H_ANNOES MESSAGE COPY,H_ANNOES
END END
@ -512,7 +512,7 @@ END
NUMBER H_ANNOES 4 NUMBER H_ANNOES 4
BEGIN BEGIN
PROMPT 61 1 "Esercizio " PROMPT 61 1 "Esercizio "
FLAGS "DRZ" FLAGS "DZ"
END END
STRING H_CODCAUS 3 STRING H_CODCAUS 3
@ -535,7 +535,7 @@ BEGIN
ITEM "Det@1" ITEM "Det@1"
ITEM "Imposta@15" ITEM "Imposta@15"
ITEM "C/R@1" ITEM "C/R@1"
ITEM " " ITEM "C/F@1"
ITEM "Gr." ITEM "Gr."
ITEM "Co." ITEM "Co."
ITEM "Sottoc.@6" ITEM "Sottoc.@6"
@ -561,14 +561,14 @@ BEGIN
PROMPT 0 12 "" PROMPT 0 12 ""
ITEM "Dare@15" ITEM "Dare@15"
ITEM "Avere@15" ITEM "Avere@15"
ITEM " " ITEM "C/F@1"
ITEM "Gr." ITEM "Gr."
ITEM "Co." ITEM "Co."
ITEM "Sottoc.@6" ITEM "Sottoc.@6"
ITEM "Descrizione conto@50" ITEM "Descrizione conto@50"
ITEM "Codice" ITEM "Codice"
ITEM "Descrizione riga@50" ITEM "Descrizione riga@50"
ITEM " " ITEM "C/F@1"
ITEM "Gr./c@3" ITEM "Gr./c@3"
ITEM "Co./c@3" ITEM "Co./c@3"
ITEM "Sottoc./c@6" ITEM "Sottoc./c@6"

View File

@ -74,6 +74,7 @@ BEGIN
DISPLAY "Denominazione@50" DENCOM DISPLAY "Denominazione@50" DENCOM
OUTPUT O_COMUNE COM OUTPUT O_COMUNE COM
OUTPUT O_DENCOM DENCOM OUTPUT O_DENCOM DENCOM
OUTPUT O_CAP CAPCOM
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END

View File

@ -475,10 +475,8 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
const char* ss = saldo.string("."); const char* ss = saldo.string(".");
return f.error_box("Il movimento e' sbilanciato di %s lire.", ss); return f.error_box("Il movimento e' sbilanciato di %s lire.", ss);
} }
else
if (app().get_cgs_imp(0).valore().is_zero())
return f.error_box("Il movimento non ha una prima riga contabile valida!");
bool empty = TRUE;
const int max = cg.items(); const int max = cg.items();
for (int i = 0; i < max; i++) for (int i = 0; i < max; i++)
{ {
@ -486,13 +484,17 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
if (!im.valore().is_zero()) if (!im.valore().is_zero())
{ {
const TBill c(cg.row(i), 3, 0x0); const TBill c(cg.row(i), 3, 0x0);
if ((c.gruppo() > 0 || c.sottoconto() > 0) && !c.ok()) if (!c.empty() && !c.ok())
return error_box("Il conto della riga %d non e' completo", i+1); return error_box("Il conto della riga %d non e' completo", i+1);
const TBill co(cg.row(i), 10, 0x0); const TBill co(cg.row(i), 10, 0x0);
if ((co.gruppo() > 0 || co.sottoconto() > 0) && !co.ok()) if (!co.empty() && !co.ok())
return error_box("La contropartita della riga %d non e' completa", i+1); return error_box("La contropartita della riga %d non e' completa", i+1);
empty = FALSE;
} }
} }
if (empty)
return error_box("Il movimento non ha nessuna riga contabile con un importo");
} }
} }
return TRUE; return TRUE;
@ -849,19 +851,18 @@ bool TPrimanota_application::iva_handler(TMask_field& f, KEY k)
bool TPrimanota_application::cg_conto_handler(TMask_field& f, KEY key) bool TPrimanota_application::cg_conto_handler(TMask_field& f, KEY key)
{ {
if (key == K_TAB) if (key == K_TAB || key == K_ENTER)
{
const TipoIVA i = app().iva();
if (i != nessuna_iva)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
const short id = f.dlg(); if (m.get(115)[0] == 'T')
const short clifo = id + (i == iva_vendite ? 101 : 201);
if (!m.field(clifo).enabled())
{ {
char cf = m.get(id-2)[0]; const char cf = m.get(f.dlg()-2)[0];
if (cf != app().clifo()) char tipo = app().clifo();
return error_box("Tipo di conto incongruente col tipo di registrazione"); if (app().causale().corrispettivi()) tipo = ' ';
if (cf != tipo)
{
const char* d = tipo == ' ' ? "normale" : (tipo == 'C' ? "clienti" : "fornitori");
return f.error_box("E' richiesto un conto %s.", d);
} }
} }
} }
@ -897,7 +898,6 @@ bool TPrimanota_application::cg_clifo_handler(TMask_field& f, KEY k)
// Handlers dei campi della testata // Handlers dei campi della testata
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// Handler of the F_NUMREG field on the query mask // Handler of the F_NUMREG field on the query mask
// Certified 90% // Certified 90%
bool TPrimanota_application::num_handler(TMask_field& f, KEY key) bool TPrimanota_application::num_handler(TMask_field& f, KEY key)
@ -1273,7 +1273,8 @@ void TPrimanota_application::add_cgs_rit(bool fiscali)
{ {
const int riga = fiscali ? 8 : 9; const int riga = fiscali ? 8 : 9;
TBill conto; _causale.bill(riga, conto); TBill conto; _causale.bill(riga, conto);
set_cgs_row(-1, real2imp(imp, tipo), conto, _causale.desc_agg(riga), tipo); const TString80 desc(_causale.desc_agg(riga));
set_cgs_row(-1, real2imp(imp, tipo), conto, desc, tipo);
} }
else else
set_cgs_imp(pos, real2imp(imp, tipo)); set_cgs_imp(pos, real2imp(imp, tipo));
@ -1325,7 +1326,7 @@ bool TPrimanota_application::visval_handler(TMask_field& f, KEY key)
m.set_exchange(e); m.set_exchange(e);
else else
{ {
error_box("Impostare un valore valido per il cambio"); error_box("Impostare un valore maggiore di zero per il cambio");
f.reset(); f.reset();
} }
} }

View File

@ -13,22 +13,25 @@ BEGIN
PROMPT 0 1 "@bScadenzario" PROMPT 0 1 "@bScadenzario"
END END
STRING F_IMPONIBILE 14 NUMBER F_IMPONIBILE 15
BEGIN BEGIN
PROMPT 2 2 "Imponibile " PROMPT 2 2 "Imponibile "
FLAGS "D" PICTURE "."
FLAGS "DR"
END END
STRING F_IMPOSTA 14 NUMBER F_IMPOSTA 15
BEGIN BEGIN
PROMPT 29 2 "Imposta " PROMPT 29 2 "Imposta "
FLAGS "D" PICTURE "."
FLAGS "DR"
END END
STRING F_SPESE 14 NUMBER F_SPESE 15
BEGIN BEGIN
PROMPT 53 2 "Spese " PROMPT 53 2 "Spese "
FLAGS "D" PICTURE "."
FLAGS "DR"
END END

View File

@ -62,7 +62,7 @@ BEGIN
ITEM "F|Fornitori" ITEM "F|Fornitori"
MESSAGE HIDE,2@|SHOW,1@|RESET,1@ MESSAGE HIDE,2@|SHOW,1@|RESET,1@
ITEM "E|Entrambi" ITEM "E|Entrambi"
MESSAGE HIDE,1@|SHOW,2@|RESET,2@ MESSAGE HIDE,1@|SHOW,2@|CLEAR,2@
END END
NUMBER F_CODICEINI 6 NUMBER F_CODICEINI 6
@ -136,12 +136,12 @@ BEGIN
END END
*/ */
BUTTON DLG_OK 9 2 BUTTON DLG_OK 10 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END
BUTTON DLG_CANCEL 9 2 BUTTON DLG_CANCEL 10 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END

View File

@ -19,7 +19,6 @@ BEGIN
// OUTPUT DATA_DA D0 // OUTPUT DATA_DA D0
// OUTPUT DATA_A D1 // OUTPUT DATA_A D1
// CHECKTYPE NORMAL // CHECKTYPE NORMAL
FLAGS "RZ"
END END
NUMBER ANNO_ESER 4 NUMBER ANNO_ESER 4
@ -33,7 +32,7 @@ BEGIN
DISPLAY "Data scarico" D2 DISPLAY "Data scarico" D2
OUTPUT ANNO_ESER CODTAB OUTPUT ANNO_ESER CODTAB
// CHECKTYPE REQUIRED // CHECKTYPE REQUIRED
FLAGS "HRZ" FLAGS "HR"
END END
STRING REG_DESC 50 STRING REG_DESC 50

View File

@ -334,22 +334,6 @@ bool CG4300_App::set_liquidazione()
_selected.reset(); _selected.reset();
m.reset(CG43_FLD_SELECTED); m.reset(CG43_FLD_SELECTED);
break; break;
/*
case CG43_BUT_CHK:
{
_ditte->destroy();
for (i = 0; i < _nomiditte.items(); i++)
{
TToken_string& d = (TToken_string&)_nomiditte[i];
_ditte->add(d);
if (_selected[i]) _ditte->check(i);
}
_ditte->disable_check();
_ditte->run();
_ditte->enable_check();
}
break;
*/
} }
} }
while (k != K_ENTER && k != K_ESC); while (k != K_ENTER && k != K_ESC);

View File

@ -8,10 +8,10 @@ static TString256 TMP;
inline CG4400_application& app() { return (CG4400_application&)main_app(); } inline CG4400_application& app() { return (CG4400_application&)main_app(); }
bool filter_func (const TRelation * r) bool CG4400_application::filter_func (const TRelation * r)
{ {
TLocalisamfile & mov = r->lfile(LF_MOV); TLocalisamfile & mov = r->lfile(LF_MOV);
TString codreg = mov.get(MOV_REG); TString16 codreg = mov.get(MOV_REG);
TDate datareg = mov.get_date(MOV_DATAREG); TDate datareg = mov.get_date(MOV_DATAREG);
int annoiva = mov.get_int(MOV_ANNOIVA); int annoiva = mov.get_int(MOV_ANNOIVA);
@ -33,16 +33,16 @@ HIDDEN int compare_rows(const TObject** o1, const TObject** o2)
return (strcmp((const char*)r1->_codiva, (const char*)r2->_codiva)); return (strcmp((const char*)r1->_codiva, (const char*)r2->_codiva));
} }
HIDDEN int compare(const TObject** o1, const TObject** o2) HIDDEN int compare_fields(const TObject** o1, const TObject** o2)
{ {
TRigaiva* r1 = (TRigaiva*)*o1; TRigaiva* r1 = (TRigaiva*)*o1;
TRigaiva* r2 = (TRigaiva*)*o2; TRigaiva* r2 = (TRigaiva*)*o2;
TString campo1; TString16 campo1;
TString campo2; TString16 campo2;
campo1.format("%d%4s", r1->_tipodet, (const char*)r1->_codiva); campo1.format("%d%4s", r1->_tipodet, (const char*)r1->_codiva);
campo2.format("%d%4s", r2->_tipodet, (const char*)r2->_codiva); campo2.format("%d%4s", r2->_tipodet, (const char*)r2->_codiva);
return (strcmp((const char*)campo1, (const char*)campo2)); return strcmp(campo1, campo2);
} }
/* /*
@ -54,116 +54,68 @@ HIDDEN int compare(const TObject** o1, const TObject** o2)
} }
*/ */
bool mask_select (TMask_field& f, KEY k)
{
long j, cnt, chk; int i;
TString from = f.mask().get(DA_CODICE);
TString to = f.mask().get(A_CODICE);
TBit_array selected = app()._selected;
// build sheet bool CG4400_application::mask_select (TMask_field& f, KEY k)
{
if (k == K_SPACE) if (k == K_SPACE)
{ {
f.mask().field(DA_CODICE).set(""); TBit_array& sel = app()._selected;
f.mask().field(A_CODICE).set(""); TArray_sheet& dit = *app()._ditte;
app()._ditte->destroy(); chk = 0l;
for (i = 0; i < app()._nomiditte.items(); i++) for (int j = 0; j < dit.items(); j++)
{ dit.check(j, sel[j]);
if (app()._selected[i]) continue;
TToken_string d = (const char*)((TToken_string&)app()._nomiditte[i]);
TString cod = d.get(1);
app()._ditte->add(d);
if (!from.empty() || !to.empty())
{
if (from.empty()) from = "0";
if (to.empty()) to = "999999";
if (atol(cod) >= atol(from) && atol(cod) <= atol(to))
{
selected.set(chk++);
app()._ditte->check(chk++);
}
}
}
// seleziona e aggiungi alle gia' selezionate // seleziona e aggiungi alle gia' selezionate
if (app()._ditte->run() == K_ENTER) if (dit.run() == K_ENTER)
{ {
cnt = 0; for (int j = 0; j < dit.items(); j++)
for (j = 0l; j < app()._n_ditte; j++) sel.set(j, dit.checked(j));
{
if (app()._selected[j]) continue;
if (app()._ditte->checked(cnt++))
selected.set(j);
} }
app()._selected |= selected; const long numd = sel.ones();
selected.reset(); f.mask().set(F_SELECT, numd);
}
long numd = app()._selected.ones();
f.mask().set(F_SELECT,numd);
} }
return TRUE; return TRUE;
} }
bool mask_verifica (TMask_field& f, KEY k) bool CG4400_application::mask_azzera (TMask_field& f, KEY k)
{
int i;
if (k == K_SPACE)
{
app()._ditte->destroy();
for (i = 0; i < app()._nomiditte.items(); i++)
{
TToken_string d = (const char*)((TToken_string&)app()._nomiditte[i]);
app()._ditte->add(d);
if (app()._selected[i]) app()._ditte->check(i);
}
app()._ditte->disable_check();
app()._ditte->run();
app()._ditte->enable_check();
}
return TRUE;
}
bool mask_annulla (TMask_field& f, KEY k)
{ {
if (k == K_SPACE) if (k == K_SPACE)
{ {
app()._selected.reset(); app()._selected.reset();
f.mask().set(F_SELECT, "0"); app()._ditte->uncheck(-1);
f.mask().reset(F_SELECT);
} }
return TRUE; return TRUE;
} }
bool mask_from_to (TMask_field& f, KEY k) bool CG4400_application::mask_firm_to (TMask_field& f, KEY k)
{ {
if (k == K_TAB) if (k == K_TAB && f.focusdirty())
{ {
app()._selected.reset(); TMask& m = f.mask();
TString from, to; const long from = m.get_long(DA_CODICE);
const short id = f.dlg(); long to = m.get_long(A_CODICE);
from = f.mask().get(id-1); if (from != 0 || to != 0)
to = f.mask().get(id);
int i;
if (!from.empty() || !to.empty())
{ {
long chk = 0l; TBit_array& sel = app()._selected;
if (from.empty()) from = "0"; if (to == 0) to = 99999;
if (to.empty()) to = "999999"; for (int i = 0; i < app()._ditte->items(); i++)
for (i = 0; i < app()._nomiditte.items(); i++)
{ {
TToken_string d = (const char*)((TToken_string&)app()._nomiditte[i]); TToken_string& d = app()._ditte->row(i);
TString cod = d.get(1); const long cod = d.get_long(1);
if (cod >= from && cod <= to)
if (atol(cod) >= atol(from) && atol(cod)<= atol(to)) sel.set(i);
app()._selected.set(chk++);
} }
m.reset(DA_CODICE);
m.reset(A_CODICE);
const long numd = sel.ones();
f.mask().set(F_SELECT, numd);
} }
} }
return TRUE; return TRUE;
} }
bool mask_mese (TMask_field& f, KEY k) bool CG4400_application::mask_mese (TMask_field& f, KEY k)
{ {
if (k == K_ENTER) if (k == K_ENTER)
{ {
@ -171,22 +123,20 @@ bool mask_mese (TMask_field& f, KEY k)
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"
f.warning_box ("Le stampe devono essere richieste mese per mese! I mesi successivi a %s non sono ancora stati stampati.", itom(umese)); "I mesi successivi a %s non sono ancora stati stampati.", itom(umese));
return FALSE;
}
} }
return TRUE; return TRUE;
} }
bool mask_cod (TMask_field& f, KEY k) bool CG4400_application::mask_cod (TMask_field& f, KEY k)
{ {
TTable TabLbu ("%LBU"); TTable TabLbu ("%LBU");
TString codtab; TString codtab;
int anno; int anno;
//if ( (k == K_TAB) && f.mask().is_running() ) //if ( (k == K_TAB) && f.mask().is_running() )
if ( (k == K_SPACE)||(k == K_TAB) ) if (k == K_SPACE || k == K_TAB)
{ {
TString codlib = f.mask().get(CODICE_LIB_UN); TString codlib = f.mask().get(CODICE_LIB_UN);
anno = f.mask().get_int(ANNO); anno = f.mask().get_int(ANNO);
@ -205,14 +155,12 @@ bool mask_cod (TMask_field& f, KEY k)
return TRUE; return TRUE;
} }
bool mask_data (TMask_field& f, KEY k) bool CG4400_application::mask_data (TMask_field& f, KEY k)
{ {
const short id = f.dlg();
if (k == K_ENTER) if (k == K_ENTER)
{ {
int anno = f.mask().get_int(ANNO); const int anno = f.mask().get_int(ANNO);
TDate data = f.mask().get(id); TDate data(f.get());
if (data.ok()) if (data.ok())
if (data.year() != anno) if (data.year() != anno)
{ {
@ -294,7 +242,7 @@ bool mask_data (TMask_field& f, KEY k)
*/ */
//da una SHEET non e' possibile mandare messaggi nella maschera!!! //da una SHEET non e' possibile mandare messaggi nella maschera!!!
HIDDEN bool my_handler (TMask_field& f, KEY k) bool CG4400_application::tipostampa_handler (TMask_field& f, KEY k)
{ {
if (k == K_TAB) if (k == K_TAB)
{ {
@ -352,7 +300,7 @@ HIDDEN bool my_handler (TMask_field& f, KEY k)
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");
TString codtab = format ("%-2s", tipo); const TString16 codtab(format("%-2s", tipo));
tab_tpd.zero(); tab_tpd.zero();
tab_tpd.put("CODTAB", codtab); tab_tpd.put("CODTAB", codtab);
@ -367,7 +315,7 @@ const char * CG4400_application::descr_doc(const char * tipo)
const char * CG4400_application::descr_iva(const char * cod) const char * CG4400_application::descr_iva(const char * cod)
{ {
TTable tab_iva("%IVA"); TTable tab_iva("%IVA");
TString codtab = format ("%-4s", cod); const TString16 codtab(format ("%-4s", cod));
tab_iva.zero(); tab_iva.zero();
tab_iva.put("CODTAB", codtab); tab_iva.put("CODTAB", codtab);
@ -423,16 +371,16 @@ void CG4400_application::user_create()
_nditte = new TLocalisamfile(LF_NDITTE); _nditte = new TLocalisamfile(LF_NDITTE);
_ditte = new TArray_sheet(-1, -1, 0, 0, "Selezione Ditte", _ditte = new TArray_sheet(-1, -1, 0, 0, "Selezione Ditte",
"@1|Cod.@5|Ragione Sociale@50"); "@1|Cod.@5|Ragione Sociale@50");
_n_ditte = 0l;
for (_nditte->first(); !_nditte->eof(); _nditte->next()) for (_nditte->first(); !_nditte->eof(); _nditte->next())
{ {
TString cod = _nditte->get("CODDITTA"); TToken_string* d = new TToken_string(64);
_n_ditte++; d->add(" ");
TToken_string* d = new TToken_string(" "); d->add(_nditte->get("CODDITTA"));
d->add(cod);
d->add(_nditte->get("RAGSOC")); d->add(_nditte->get("RAGSOC"));
_nomiditte.add(d); _ditte->add(d);
} }
_n_ditte = _ditte->items();
_tab = new TLocalisamfile(LF_TAB); _tab = new TLocalisamfile(LF_TAB);
_tabcom = new TLocalisamfile(LF_TABCOM); _tabcom = new TLocalisamfile(LF_TABCOM);
_tabreg = new TTable("REG"); _tabreg = new TTable("REG");
@ -827,7 +775,7 @@ void CG4400_application::set_page_tot_reg()
int rw = row; int rw = row;
tot_imponib = tot_imposta = tot_imponibp = tot_impostap = 0.00; tot_imponib = tot_imposta = tot_imponibp = tot_impostap = 0.00;
_iva_array.sort(compare); _iva_array.sort(compare_fields);
for (int s = 0; s < _iva_array.items(); s++) for (int s = 0; s < _iva_array.items(); s++)
{ {
TRigaiva& riga = (TRigaiva&)_iva_array[s]; TRigaiva& riga = (TRigaiva&)_iva_array[s];
@ -1475,15 +1423,14 @@ 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, my_handler); m.set_handler (TIPO_STAMPA, tipostampa_handler);
m.set_handler (A_CODICE, mask_from_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 (MESE, mask_mese); m.set_handler (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_annulla); m.set_handler (F_ANNULLA, mask_azzera);
m.set_handler (F_VERIFICA, mask_verifica);
KEY tasto; KEY tasto;

View File

@ -2,13 +2,10 @@
// cg4400.h // cg4400.h
// //
#include <isam.h> #include <isam.h>
#include <lffiles.h>
#include <printapp.h> #include <printapp.h>
#include <mask.h> #include <mask.h>
#include <strings.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include <stdlib.h>
#include <urldefid.h> #include <urldefid.h>
#include <sheet.h> #include <sheet.h>
#include <config.h> #include <config.h>
@ -27,27 +24,18 @@
//enum STAMPA { bollati=1, unici=2 }; //enum STAMPA { bollati=1, unici=2 };
const int TABREG = (int)TTable::name2log("REG"); const int TABREG = (int)TTable::name2log("REG");
bool filter_func (const TRelation*);
bool my_handler (TMask_field&, KEY);
bool mask_from_to (TMask_field&, KEY);
bool mask_cod (TMask_field&, KEY);
bool mask_data (TMask_field&, KEY);
bool mask_mese (TMask_field&, KEY);
bool mask_fino_a_mese (TMask_field&, KEY);
bool mask_select (TMask_field&, KEY);
bool mask_verifica (TMask_field&, KEY);
bool mask_annulla (TMask_field&, KEY);
class TDati_ditta : public TObject class TDati_ditta : public TObject
{ {
TLocalisamfile * _nditte, * _anag, *_comuni; TLocalisamfile * _nditte, * _anag, *_comuni;
TString _ragsoc, _cofi, _paiva; TString80 _ragsoc, _viafis;
TString _comunefis, _viafis, _provfis, _cap; TString16 _cofi, _paiva, _comunefis, _provfis, _cap;
long _codditta; long _codditta;
int _stampa_width; int _stampa_width;
protected: protected:
void get_dati_ditta(); void get_dati_ditta();
TRectype& look_com (const char * codice); TRectype& look_com (const char * codice);
public: public:
const char* prima_riga (); const char* prima_riga ();
const char* seconda_riga (); const char* seconda_riga ();
@ -57,15 +45,6 @@ public:
class CG4400_application : public TPrintapp class CG4400_application : public TPrintapp
{ {
friend bool filter_func (const TRelation *r);
friend bool mask_cod (TMask_field&, KEY);
friend bool mask_from_to (TMask_field&, KEY);
friend bool mask_mese (TMask_field&, KEY);
friend bool my_handler (TMask_field&, KEY);
friend bool mask_select (TMask_field&, KEY);
friend bool mask_verifica (TMask_field&, KEY);
friend bool mask_annulla (TMask_field&, KEY);
TCursor * _cur; TCursor * _cur;
TRelation *_rel; TRelation *_rel;
TLocalisamfile *_clifo, *_nditte, *_occas, *_tab, *_tabcom; TLocalisamfile *_clifo, *_nditte, *_occas, *_tab, *_tabcom;
@ -73,9 +52,10 @@ class CG4400_application : public TPrintapp
TRigaiva_array _iva_array, _riga_rmi; TRigaiva_array _iva_array, _riga_rmi;
TTipodoc_array _doc_array; TTipodoc_array _doc_array;
TRiga_array _tot_iva_array; TRiga_array _tot_iva_array;
TArray_sheet *_ditte;
TBit_array _selected; TBit_array _selected;
TArray _nomiditte; //array descrizioni ditte per sheet TArray_sheet *_ditte;
TRecnotype _nrec; TRecnotype _nrec;
bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri; bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri;
char _frequiva; char _frequiva;
@ -87,7 +67,7 @@ class CG4400_application : public TPrintapp
TString _codreg, _desc_lib, _codatt, _attivita; TString _codreg, _desc_lib, _codatt, _attivita;
TString _tipodoc, _descr_doc, _codlib; TString _tipodoc, _descr_doc, _codlib;
public: protected:
const char* desc_attivita (const char * codatt); const char* desc_attivita (const char * codatt);
const char* descr_doc (const char * tipo); const char* descr_doc (const char * tipo);
const char* descr_iva (const char * cod); const char* descr_iva (const char * cod);
@ -117,9 +97,20 @@ public:
print_action postprocess_page (int, int); print_action postprocess_page (int, int);
void preprocess_header(); void preprocess_header();
CG4400_application() : TPrintapp(),_ditte(NULL),_selected(10000), static bool filter_func (const TRelation * r);
_nomiditte(100) {}
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_mese (TMask_field&, KEY);
static bool mask_fino_a_mese (TMask_field&, KEY);
static bool mask_select (TMask_field&, KEY);
static bool mask_azzera (TMask_field&, KEY);
public:
CG4400_application() : TPrintapp(), _ditte(NULL) {}
virtual ~CG4400_application() {} virtual ~CG4400_application() {}
}; };

View File

@ -3,23 +3,24 @@
#include "cg4400a.h" #include "cg4400a.h"
PAGE "Stampa registri IVA" -1 -1 56 19 PAGE "Stampa registri IVA" -1 -1 56 16
/*
LISTBOX TIPO_STAMPA 2 27 LISTBOX TIPO_STAMPA 1 48
BEGIN BEGIN
PROMPT 2 1 "Tipo stampa " PROMPT 2 1 "Tipo "
ITEM "1|Libri bollati della ditta" ITEM "1|Libri bollati della ditta"
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@ MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
ITEM "2|Libri unici dello studio" ITEM "2|Libri unici dello studio"
MESSAGE SHOW,2@|HIDE,1@|HIDE,3@ MESSAGE SHOW,2@|HIDE,1@|HIDE,3@
ITEM "3|Stampa di prova" ITEM "3|Stampa di prova"
MESSAGE SHOW,3@|HIDE,1@|HIDE,2@|SHOW,CODICE_LIBRO MESSAGE SHOW,3@|HIDE,1@|HIDE,2@|SHOW,CODICE_LIBRO
ITEM "4|Stampa libri con riferimenti al libro giornale" ITEM "4|Libri con riferimenti al libro giornale"
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@ MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
END END
*/
/*
NUMBER TIPO_STAMPA 1 NUMBER TIPO_STAMPA 1
BEGIN BEGIN
PROMPT 2 1 "Tipo stampa " PROMPT 2 1 "Tipo stampa "
@ -31,15 +32,16 @@ BEGIN
ITEM "3|Stampa di prova" ITEM "3|Stampa di prova"
ITEM "4|Libri con riferimenti al libro giornale" ITEM "4|Libri con riferimenti al libro giornale"
END END
*/
GROUPBOX DLG_NULL 35 5 GROUPBOX DLG_NULL 35 5
BEGIN BEGIN
PROMPT 20 1 "Scelta ditte" PROMPT 20 2 "Scelta ditte"
END END
NUMBER DA_CODICE 6 NUMBER DA_CODICE 6
BEGIN BEGIN
PROMPT 21 2 "Da codice " PROMPT 21 3 "Da codice "
HELP "Immettere codice ditta di partenza per la selezione" HELP "Immettere codice ditta di partenza per la selezione"
USE LF_NDITTE KEY 1 USE LF_NDITTE KEY 1
CHECKTYPE NORMAL CHECKTYPE NORMAL
@ -51,7 +53,7 @@ END
NUMBER A_CODICE 6 NUMBER A_CODICE 6
BEGIN BEGIN
PROMPT 21 3 "A codice " PROMPT 21 4 "A codice "
HELP "Immettere codice ditta di fine selezione" HELP "Immettere codice ditta di fine selezione"
COPY USE DA_CODICE COPY USE DA_CODICE
CHECKTYPE NORMAL CHECKTYPE NORMAL
@ -62,46 +64,39 @@ END
STRING F_SELECT 6 STRING F_SELECT 6
BEGIN BEGIN
PROMPT 21 4 "Scelte n. " PROMPT 21 5 "Scelte n. "
FLAGS "D" FLAGS "D"
END END
BUTTON DLG_SELECT 9 BUTTON DLG_SELECT 9 2
BEGIN BEGIN
PROMPT 42 2 "Selezione" PROMPT 42 3 "~Selezione"
//MESSAGE EXIT,DLG_SELECT
END END
BUTTON F_ANNULLA 9 BUTTON F_ANNULLA 9
BEGIN BEGIN
PROMPT 42 3 "Azzera" PROMPT 42 5 "A~zzera"
MESSAGE RESET,DA_CODICE|RESET,A_CODICE MESSAGE RESET,DA_CODICE|RESET,A_CODICE
END END
BUTTON F_VERIFICA 9
BEGIN
PROMPT 42 4 "Verifica"
//MESSAGE EXIT,F_VERIFICA
END
DATE DATA_STAMPA DATE DATA_STAMPA
BEGIN BEGIN
PROMPT 2 6 "Data stampa " PROMPT 28 7 "Data stampa "
FLAG "AH" FLAG "AH"
GROUP 3 GROUP 3
END END
NUMBER ANNO 4 NUMBER ANNO 4
BEGIN BEGIN
PROMPT 2 7 "Anno " PROMPT 2 3 "Anno "
FLAGS "A" FLAGS "A"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING CODICE_LIBRO 3 STRING CODICE_LIBRO 3
BEGIN BEGIN
PROMPT 20 7 "Codice libro " PROMPT 2 7 "Codice libro "
HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate" HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111) 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 INPUT CODTAB[5,7] CODICE_LIBRO
@ -117,8 +112,8 @@ END
STRING CODICE_LIBRO_PROVA 3 STRING CODICE_LIBRO_PROVA 3
BEGIN BEGIN
PROMPT 20 7 "Codice libro " PROMPT 2 7 "Codice libro "
HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate" HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111) USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_PROVA INPUT CODTAB[5,7] CODICE_LIBRO_PROVA
@ -134,8 +129,8 @@ END
STRING CODICE_LIB_UN 3 STRING CODICE_LIB_UN 3
BEGIN BEGIN
PROMPT 20 7 "Cod.libro unico " PROMPT 2 7 "Libro unico "
HELP "Specificare il codice del libro unico su cui deve essere effettuata la stampa" HELP "Codice del libro unico su cui deve essere effettuata la stampa"
USE %LBU SELECT CODTAB[1,4]==#111 USE %LBU SELECT CODTAB[1,4]==#111
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIB_UN INPUT CODTAB[5,7] CODICE_LIB_UN
@ -151,38 +146,38 @@ END
GROUPBOX DLG_NULL 52 3 GROUPBOX DLG_NULL 52 3
BEGIN BEGIN
PROMPT 2 9 "Stampa movimenti" PROMPT 2 8 "Stampa movimenti"
END END
DATE DA_DATA DATE DA_DATA
BEGIN BEGIN
PROMPT 5 10 "Dalla data " PROMPT 5 9 "Dalla data "
GROUP 3 GROUP 3
END END
DATE A_DATA DATE A_DATA
BEGIN BEGIN
PROMPT 30 10 "Alla data " PROMPT 30 9 "Alla data "
GROUP 3 GROUP 3
END END
LISTBOX FINO_A_MESE 10 LISTBOX FINO_A_MESE 10
BEGIN BEGIN
PROMPT 5 10 "Fino al mese " PROMPT 5 9 "Fino al mese "
FLAGS "M" FLAGS "M"
GROUP 1 GROUP 1
END END
LISTBOX MESE 10 LISTBOX MESE 10
BEGIN BEGIN
PROMPT 5 10 "Mese " PROMPT 5 9 "Mese "
FLAGS "M" FLAGS "M"
GROUP 2 GROUP 2
END END
LISTBOX TIPO_RIEPILOGATIVO 11 LISTBOX TIPO_RIEPILOGATIVO 11
BEGIN BEGIN
PROMPT 2 12 "Tipo riepilogativo " PROMPT 2 11 "Tipo riepilogativo "
HELP "Selezionare Del periodo/Annuale a seconda che si desideri la stampa della liquidazione periodica/annuale" HELP "Selezionare Del periodo/Annuale a seconda che si desideri la stampa della liquidazione periodica/annuale"
ITEM "P|Del periodo" ITEM "P|Del periodo"
ITEM "A|Annuale" ITEM "A|Annuale"
@ -191,21 +186,21 @@ END
LISTBOX ULTIMO_MESE 10 LISTBOX ULTIMO_MESE 10
BEGIN BEGIN
PROMPT 2 13 "Ultimo mese stampa su libro unico " PROMPT 2 11 "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
PROMPT 2 14 "Ultimo numero di pagina stampata libro unico " PROMPT 2 12 "Ultimo numero di pagina stampata libro unico "
FLAGS "R" FLAGS "R"
GROUP 2 GROUP 2
END END
STRING CODICE_LIBRO_IVA 3 STRING CODICE_LIBRO_IVA 3
BEGIN BEGIN
PROMPT 2 15 "Eventuale codice libro IVA " PROMPT 2 13 "Eventuale codice libro IVA "
HELP "Se non viene indicato nessun cod. libro IVA, vengono stampati tutti i registri delle ditte selezionate" HELP "Se non viene indicato nessun cod. libro IVA, vengono stampati tutti i registri delle ditte selezionate"
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
@ -220,13 +215,13 @@ BEGIN
GROUP 2 GROUP 2
END END
BUTTON DLG_PRINT 9 2 BUTTON DLG_PRINT 10 2
BEGIN BEGIN
PROMPT -12 -1 "~Stampa" PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER MESSAGE EXIT,K_ENTER
END END
BUTTON DLG_QUIT 9 2 BUTTON DLG_QUIT 10 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END

View File

@ -75,9 +75,9 @@ BEGIN
FLAGS "R" FLAGS "R"
END END
SPREADSHEET F_SHEET_PLA 75 6 SPREADSHEET F_SHEET_PLA 78 6
BEGIN BEGIN
PROMPT 4 10 "Parametri attivita'" PROMPT 1 10 "Parametri attivita'"
ITEM "Attivita'" ITEM "Attivita'"
ITEM "Tipo" ITEM "Tipo"
ITEM "Pro-rata@15" ITEM "Pro-rata@15"
@ -113,14 +113,14 @@ END
LIST F_TIPOATT 26 LIST F_TIPOATT 26
BEGIN BEGIN
PROMPT 4 3 "Tipo " PROMPT 4 3 "Tipo "
FLAGS "R" FLAGS "U"
ITEM " |Altre" ITEM " |Altre"
ITEM "M|Mista" ITEM "M|Mista"
ITEM "E|Mista evidenziata" ITEM "E|Mista evidenziata"
ITEM "S|Servizio o mista generica" ITEM "S|Servizio o mista generica"
END END
NUMBER F_PRORATA 15 0 NUMBER F_PRORATA 15
BEGIN BEGIN
PROMPT 4 5 "Pro-Rata " PROMPT 4 5 "Pro-Rata "
PICTURE "." PICTURE "."
@ -128,7 +128,7 @@ BEGIN
GROUP 1 GROUP 1
END END
NUMBER F_P8 15 0 NUMBER F_P8 15
BEGIN BEGIN
PROMPT 4 7 "Plafond art. 8 " PROMPT 4 7 "Plafond art. 8 "
PICTURE "." PICTURE "."
@ -136,7 +136,7 @@ BEGIN
GROUP 1 GROUP 1
END END
NUMBER F_P8B 15 0 NUMBER F_P8B 15
BEGIN BEGIN
PROMPT 4 9 "Plafond art. 8b " PROMPT 4 9 "Plafond art. 8b "
PICTURE "." PICTURE "."
@ -144,7 +144,7 @@ BEGIN
GROUP 1 GROUP 1
END END
NUMBER F_P9 15 0 NUMBER F_P9 15
BEGIN BEGIN
PROMPT 4 11 "Plafond art. 9 " PROMPT 4 11 "Plafond art. 9 "
PICTURE "." PICTURE "."

View File

@ -33,6 +33,7 @@ public:
const TBill& add_to(TToken_string& ts, int from, int mode = 0); const TBill& add_to(TToken_string& ts, int from, int mode = 0);
virtual bool ok() const; // Gruppo, Conto e Sottoconto non nulli virtual bool ok() const; // Gruppo, Conto e Sottoconto non nulli
bool empty() const { return _gruppo==0 && _conto==0 && _sottoconto == 0; }
char tipo() const { return _tipo; } char tipo() const { return _tipo; }
int gruppo() const { return _gruppo; } int gruppo() const { return _gruppo; }