From 41cac87df589cf2a1cfd2b0c91d6307c91a89b3e Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 14 Oct 1994 19:14:40 +0000 Subject: [PATCH] Corrrzioni guido (da commentare) git-svn-id: svn://10.65.10.50/trunk@388 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg0500a.uml | 8 +- cg/cg2100.cpp | 33 +++-- cg/cg2100b.uml | 6 +- cg/cg2100c.uml | 12 +- cg/cg2100o.uml | 1 + cg/cg2102.cpp | 43 +++--- cg/cg2104a.uml | 35 ++--- cg/cg3100b.uml | 18 +-- cg/cg3400a.uml | 3 +- cg/cg4300.cpp | 16 --- cg/cg4400.cpp | 177 +++++++++---------------- cg/cg4400.h | 55 ++++---- cg/cg4400a.uml | 73 +++++------ cg/cg5300a.uml | 346 ++++++++++++++++++++++++------------------------- cg/conto.h | 1 + 15 files changed, 383 insertions(+), 444 deletions(-) diff --git a/cg/cg0500a.uml b/cg/cg0500a.uml index d334f2315..c37ccf2af 100755 --- a/cg/cg0500a.uml +++ b/cg/cg0500a.uml @@ -147,10 +147,10 @@ BEGIN ITEM "Co.@3" ITEM "Sottoc.@6" ITEM "D/A@1" - ITEM "Descrizione@50" - ITEM "Descr. agg." + ITEM "Descrizione conto@50" + ITEM "Descr. agg.@5" ITEM "Iva" - ITEM "Cod.Iva" + ITEM "Cod.Iva@4" END ENDPAGE @@ -159,7 +159,7 @@ PAGE "" -1 -1 77 20 GROUPBOX DLG_NULL 78 3 BEGIN - PROMPT 1 0 "@BCampi obbligatori in caricamento documenti" + PROMPT 1 0 "@BCampi obbligatori in immissione documenti" END BOOLEAN F_DATA_DOC diff --git a/cg/cg2100.cpp b/cg/cg2100.cpp index 34417a8e0..734ee4a9c 100755 --- a/cg/cg2100.cpp +++ b/cg/cg2100.cpp @@ -213,6 +213,7 @@ bool TPrimanota_application::changing_mask(int mode) if (mode == MODE_QUERY) { const bool flag = _mode != MODE_QUERY; + if (flag && _iva != nessuna_iva) { WINDOW w = ivas().parent(); @@ -221,6 +222,7 @@ bool TPrimanota_application::changing_mask(int mode) process_events(); show_window(w, FALSE); } + return flag; } _iva = iva_errata; @@ -304,15 +306,14 @@ void TPrimanota_application::init_mask(TMask& m) if (valuta) m.set(F_VISVAL, "X"); - m.disable(DLG_NEWREC); + // m.disable(DLG_NEWREC); } - void TPrimanota_application::init_query_mode(TMask& m) { read_firm_params(); enable_menu_item(M_FILE_PRINT); - m.enable(DLG_NEWREC); + // m.enable(DLG_NEWREC); } @@ -334,17 +335,31 @@ void TPrimanota_application::fill_sheet(TMask& m) const // Ritorna il prossimo numero di registrazione libero // Certified 100% 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) { - 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) occas_mask().reset(); diff --git a/cg/cg2100b.uml b/cg/cg2100b.uml index 9a6c91acd..077a122d8 100755 --- a/cg/cg2100b.uml +++ b/cg/cg2100b.uml @@ -120,6 +120,8 @@ BEGIN INPUT CODCAUS F_CODCAUS DISPLAY "Codice" CODCAUS DISPLAY "Descrizione@50" DESCR + DISPLAY "Tipo" TIPODOC + DISPLAY "Registro" REG OUTPUT F_CODCAUS CODCAUS OUTPUT F_DESCRCAUS DESCR CHECKTYPE NORMAL @@ -174,14 +176,14 @@ BEGIN PROMPT 0 10 "" ITEM "Dare@15" ITEM "Avere@15" - ITEM " @1" + ITEM "C/F@1" ITEM "Gr." ITEM "Co." ITEM "Sottoc.@6" ITEM "Descrizione conto@50" ITEM "Codice" ITEM "Descrizione riga@50" - ITEM " @1" + ITEM "C/F@1" ITEM "Gr./c@3" ITEM "Co./c@3" ITEM "Sottoc./c@6" diff --git a/cg/cg2100c.uml b/cg/cg2100c.uml index e19839cef..f76f6a5c1 100755 --- a/cg/cg2100c.uml +++ b/cg/cg2100c.uml @@ -66,7 +66,7 @@ DATE F_DATAREG BEGIN PROMPT 1 3 "Data operazione " FIELD LF_MOV->DATAREG - MESSAGE COPY,H_DATAREG|COPY,F_DATA74TER + MESSAGE COPY,H_DATAREG|COPY,F_DATA74TER|COPY,F_ANNOIVA,7,10 END DATE F_DATACOMP @@ -95,7 +95,7 @@ NUMBER F_ANNOES 4 BEGIN PROMPT 32 4 "Anno esercizio " FIELD LF_MOV->ANNOES - FLAGS "DGRZ" + FLAGS "DGZ" MESSAGE COPY,H_ANNOES END @@ -512,7 +512,7 @@ END NUMBER H_ANNOES 4 BEGIN PROMPT 61 1 "Esercizio " - FLAGS "DRZ" + FLAGS "DZ" END STRING H_CODCAUS 3 @@ -535,7 +535,7 @@ BEGIN ITEM "Det@1" ITEM "Imposta@15" ITEM "C/R@1" - ITEM " " + ITEM "C/F@1" ITEM "Gr." ITEM "Co." ITEM "Sottoc.@6" @@ -561,14 +561,14 @@ BEGIN PROMPT 0 12 "" ITEM "Dare@15" ITEM "Avere@15" - ITEM " " + ITEM "C/F@1" ITEM "Gr." ITEM "Co." ITEM "Sottoc.@6" ITEM "Descrizione conto@50" ITEM "Codice" ITEM "Descrizione riga@50" - ITEM " " + ITEM "C/F@1" ITEM "Gr./c@3" ITEM "Co./c@3" ITEM "Sottoc./c@6" diff --git a/cg/cg2100o.uml b/cg/cg2100o.uml index 8c02855f2..64b615391 100755 --- a/cg/cg2100o.uml +++ b/cg/cg2100o.uml @@ -74,6 +74,7 @@ BEGIN DISPLAY "Denominazione@50" DENCOM OUTPUT O_COMUNE COM OUTPUT O_DENCOM DENCOM + OUTPUT O_CAP CAPCOM CHECKTYPE NORMAL END diff --git a/cg/cg2102.cpp b/cg/cg2102.cpp index 8fffe1047..3266bc719 100755 --- a/cg/cg2102.cpp +++ b/cg/cg2102.cpp @@ -44,7 +44,7 @@ const real& TPrimanota_application::cod2IVA(const TMask& m) { static TString16 _codiva; static real _percent; - + const TString& codiva = m.get(102); if (_codiva != codiva) { @@ -475,10 +475,8 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k) const char* ss = saldo.string("."); 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(); 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()) { 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); 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); + empty = FALSE; } } + + if (empty) + return error_box("Il movimento non ha nessuna riga contabile con un importo"); } } return TRUE; @@ -849,20 +851,19 @@ bool TPrimanota_application::iva_handler(TMask_field& f, KEY k) 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(); + if (m.get(115)[0] == 'T') { - TMask& m = f.mask(); - const short id = f.dlg(); - const short clifo = id + (i == iva_vendite ? 101 : 201); - if (!m.field(clifo).enabled()) + const char cf = m.get(f.dlg()-2)[0]; + char tipo = app().clifo(); + if (app().causale().corrispettivi()) tipo = ' '; + if (cf != tipo) { - char cf = m.get(id-2)[0]; - if (cf != app().clifo()) - return error_box("Tipo di conto incongruente col tipo di registrazione"); - } + const char* d = tipo == ' ' ? "normale" : (tipo == 'C' ? "clienti" : "fornitori"); + return f.error_box("E' richiesto un conto %s.", d); + } } } return TRUE; @@ -897,7 +898,6 @@ bool TPrimanota_application::cg_clifo_handler(TMask_field& f, KEY k) // Handlers dei campi della testata /////////////////////////////////////////////////////////// - // Handler of the F_NUMREG field on the query mask // Certified 90% 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; 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 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); else { - error_box("Impostare un valore valido per il cambio"); + error_box("Impostare un valore maggiore di zero per il cambio"); f.reset(); } } diff --git a/cg/cg2104a.uml b/cg/cg2104a.uml index 6bf873ec3..4dcd6ec88 100755 --- a/cg/cg2104a.uml +++ b/cg/cg2104a.uml @@ -7,28 +7,31 @@ TOOLBAR "" 0 20 0 2 ENDPAGE PAGE "Registrazione Scadenze" -1 -1 77 20 - + GROUPBOX DLG_NULL 79 3 BEGIN PROMPT 0 1 "@bScadenzario" END - -STRING F_IMPONIBILE 14 + +NUMBER F_IMPONIBILE 15 BEGIN PROMPT 2 2 "Imponibile " - FLAGS "D" + PICTURE "." + FLAGS "DR" END -STRING F_IMPOSTA 14 +NUMBER F_IMPOSTA 15 BEGIN PROMPT 29 2 "Imposta " - FLAGS "D" + PICTURE "." + FLAGS "DR" END -STRING F_SPESE 14 +NUMBER F_SPESE 15 BEGIN PROMPT 53 2 "Spese " - FLAGS "D" + PICTURE "." + FLAGS "DR" END @@ -72,8 +75,8 @@ BEGIN ITEM "Scadenza@10" ITEM "Percentuale@12" ITEM "Importo@15" - ITEM "Tipo" - ITEM "Pagamento@32" + ITEM "Tipo" + ITEM "Pagamento@32" END ENDPAGE @@ -99,11 +102,11 @@ END NUMBER 104 2 0 BEGIN PROMPT 1 5 "Tipo pagamento " - HELP "" - SHEET "Codice|Tipo pagamento@32" - INPUT 104 - OUTPUT 104 - OUTPUT 105 + HELP "" + SHEET "Codice|Tipo pagamento@32" + INPUT 104 + OUTPUT 104 + OUTPUT 105 ITEM "1|Rimessa diretta o contanti" ITEM "2|Tratta" ITEM "3|Ricevuta Bancaria" @@ -119,7 +122,7 @@ BEGIN PROMPT 22 6 "" FLAGS "D" END - + BUTTON DLG_CANCEL 10 2 BEGIN PROMPT -12 -1 "" diff --git a/cg/cg3100b.uml b/cg/cg3100b.uml index 80e7c3cc5..ef37f0303 100755 --- a/cg/cg3100b.uml +++ b/cg/cg3100b.uml @@ -6,14 +6,14 @@ PAGE "" -1 -1 73 16 NUMBER F_CODDITTA 5 BEGIN PROMPT 2 1 "Ditta " - FLAGS "FRD" - USE LF_NDITTE KEY 1 - CHECKTYPE REQUIRED - INPUT CODDITTA F_CODDITTA - DISPLAY "Codice" CODDITTA + FLAGS "FRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA DISPLAY "Ragione sociale @50" RAGSOC OUTPUT F_CODDITTA CODDITTA - OUTPUT F_RAGSOC RAGSOC + OUTPUT F_RAGSOC RAGSOC END STRING F_RAGSOC 50 @@ -62,7 +62,7 @@ BEGIN ITEM "F|Fornitori" MESSAGE HIDE,2@|SHOW,1@|RESET,1@ ITEM "E|Entrambi" - MESSAGE HIDE,1@|SHOW,2@|RESET,2@ + MESSAGE HIDE,1@|SHOW,2@|CLEAR,2@ END NUMBER F_CODICEINI 6 @@ -136,12 +136,12 @@ BEGIN END */ -BUTTON DLG_OK 9 2 +BUTTON DLG_OK 10 2 BEGIN PROMPT -12 -1 "" END -BUTTON DLG_CANCEL 9 2 +BUTTON DLG_CANCEL 10 2 BEGIN PROMPT -22 -1 "" END diff --git a/cg/cg3400a.uml b/cg/cg3400a.uml index 5e5c5c719..d370950ce 100755 --- a/cg/cg3400a.uml +++ b/cg/cg3400a.uml @@ -19,7 +19,6 @@ BEGIN // OUTPUT DATA_DA D0 // OUTPUT DATA_A D1 // CHECKTYPE NORMAL - FLAGS "RZ" END NUMBER ANNO_ESER 4 @@ -33,7 +32,7 @@ BEGIN DISPLAY "Data scarico" D2 OUTPUT ANNO_ESER CODTAB // CHECKTYPE REQUIRED - FLAGS "HRZ" + FLAGS "HR" END STRING REG_DESC 50 diff --git a/cg/cg4300.cpp b/cg/cg4300.cpp index 469d8850a..fc78097da 100755 --- a/cg/cg4300.cpp +++ b/cg/cg4300.cpp @@ -334,22 +334,6 @@ bool CG4300_App::set_liquidazione() _selected.reset(); m.reset(CG43_FLD_SELECTED); 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); diff --git a/cg/cg4400.cpp b/cg/cg4400.cpp index 35b039e7c..c3c2f145d 100755 --- a/cg/cg4400.cpp +++ b/cg/cg4400.cpp @@ -8,10 +8,10 @@ static TString256 TMP; 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); - TString codreg = mov.get(MOV_REG); + TString16 codreg = mov.get(MOV_REG); TDate datareg = mov.get_date(MOV_DATAREG); 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)); } -HIDDEN int compare(const TObject** o1, const TObject** o2) +HIDDEN int compare_fields(const TObject** o1, const TObject** o2) { TRigaiva* r1 = (TRigaiva*)*o1; TRigaiva* r2 = (TRigaiva*)*o2; - TString campo1; - TString campo2; + TString16 campo1; + TString16 campo2; campo1.format("%d%4s", r1->_tipodet, (const char*)r1->_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) + +bool CG4400_application::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 if (k == K_SPACE) { - f.mask().field(DA_CODICE).set(""); - f.mask().field(A_CODICE).set(""); - app()._ditte->destroy(); chk = 0l; - for (i = 0; i < app()._nomiditte.items(); i++) - { - 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++); - } - } - } + TBit_array& sel = app()._selected; + TArray_sheet& dit = *app()._ditte; + + for (int j = 0; j < dit.items(); j++) + dit.check(j, sel[j]); + // seleziona e aggiungi alle gia' selezionate - if (app()._ditte->run() == K_ENTER) + if (dit.run() == K_ENTER) { - cnt = 0; - for (j = 0l; j < app()._n_ditte; j++) - { - if (app()._selected[j]) continue; - if (app()._ditte->checked(cnt++)) - selected.set(j); - } - app()._selected |= selected; - selected.reset(); + for (int j = 0; j < dit.items(); j++) + sel.set(j, dit.checked(j)); } - long numd = app()._selected.ones(); - f.mask().set(F_SELECT,numd); + const long numd = sel.ones(); + f.mask().set(F_SELECT, numd); } return TRUE; } -bool mask_verifica (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) +bool CG4400_application::mask_azzera (TMask_field& f, KEY k) { if (k == K_SPACE) { app()._selected.reset(); - f.mask().set(F_SELECT, "0"); + app()._ditte->uncheck(-1); + f.mask().reset(F_SELECT); } 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) - { - app()._selected.reset(); - TString from, to; - const short id = f.dlg(); - from = f.mask().get(id-1); - to = f.mask().get(id); - int i; - if (!from.empty() || !to.empty()) + if (k == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + const long from = m.get_long(DA_CODICE); + long to = m.get_long(A_CODICE); + if (from != 0 || to != 0) { - long chk = 0l; - if (from.empty()) from = "0"; - if (to.empty()) to = "999999"; - - for (i = 0; i < app()._nomiditte.items(); i++) + TBit_array& sel = app()._selected; + if (to == 0) to = 99999; + for (int i = 0; i < app()._ditte->items(); i++) { - TToken_string d = (const char*)((TToken_string&)app()._nomiditte[i]); - TString cod = d.get(1); - - if (atol(cod) >= atol(from) && atol(cod)<= atol(to)) - app()._selected.set(chk++); - } + TToken_string& d = app()._ditte->row(i); + const long cod = d.get_long(1); + if (cod >= from && cod <= to) + sel.set(i); + } + m.reset(DA_CODICE); + m.reset(A_CODICE); + const long numd = sel.ones(); + f.mask().set(F_SELECT, numd); } } return TRUE; } -bool mask_mese (TMask_field& f, KEY k) +bool CG4400_application::mask_mese (TMask_field& f, KEY k) { if (k == K_ENTER) { @@ -171,22 +123,20 @@ bool mask_mese (TMask_field& f, KEY k) int umese = f.mask().get_int(ULTIMO_MESE); if (mese != umese+1) - { - f.warning_box ("Le stampe devono essere richieste mese per mese! I mesi successivi a %s non sono ancora stati stampati.", itom(umese)); - return FALSE; - } + 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)); } return TRUE; } -bool mask_cod (TMask_field& f, KEY k) +bool CG4400_application::mask_cod (TMask_field& f, KEY k) { TTable TabLbu ("%LBU"); TString codtab; int anno; //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); anno = f.mask().get_int(ANNO); @@ -205,14 +155,12 @@ bool mask_cod (TMask_field& f, KEY k) 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) { - int anno = f.mask().get_int(ANNO); - TDate data = f.mask().get(id); + const int anno = f.mask().get_int(ANNO); + TDate data(f.get()); if (data.ok()) 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!!! -HIDDEN bool my_handler (TMask_field& f, KEY k) +bool CG4400_application::tipostampa_handler (TMask_field& f, KEY k) { 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) { TTable tab_tpd("%TPD"); - TString codtab = format ("%-2s", tipo); + const TString16 codtab(format("%-2s", tipo)); tab_tpd.zero(); 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) { TTable tab_iva("%IVA"); - TString codtab = format ("%-4s", cod); + const TString16 codtab(format ("%-4s", cod)); tab_iva.zero(); tab_iva.put("CODTAB", codtab); @@ -423,16 +371,16 @@ void CG4400_application::user_create() _nditte = new TLocalisamfile(LF_NDITTE); _ditte = new TArray_sheet(-1, -1, 0, 0, "Selezione Ditte", "@1|Cod.@5|Ragione Sociale@50"); - _n_ditte = 0l; for (_nditte->first(); !_nditte->eof(); _nditte->next()) { - TString cod = _nditte->get("CODDITTA"); - _n_ditte++; - TToken_string* d = new TToken_string(" "); - d->add(cod); + TToken_string* d = new TToken_string(64); + d->add(" "); + d->add(_nditte->get("CODDITTA")); d->add(_nditte->get("RAGSOC")); - _nomiditte.add(d); + _ditte->add(d); } + _n_ditte = _ditte->items(); + _tab = new TLocalisamfile(LF_TAB); _tabcom = new TLocalisamfile(LF_TABCOM); _tabreg = new TTable("REG"); @@ -827,7 +775,7 @@ void CG4400_application::set_page_tot_reg() int rw = row; 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++) { TRigaiva& riga = (TRigaiva&)_iva_array[s]; @@ -1475,15 +1423,14 @@ bool CG4400_application::set_ditte(TMask& m) m.field(A_CODICE).set(""); m.field(TIPO_STAMPA).set("1"); - m.set_handler (TIPO_STAMPA, my_handler); - m.set_handler (A_CODICE, mask_from_to); + m.set_handler (TIPO_STAMPA, tipostampa_handler); + m.set_handler (A_CODICE, mask_firm_to); m.set_handler (DA_DATA, mask_data); m.set_handler (A_DATA, mask_data); m.set_handler (MESE, mask_mese); m.set_handler (CODICE_LIB_UN, mask_cod); m.set_handler (DLG_SELECT, mask_select); - m.set_handler (F_ANNULLA, mask_annulla); - m.set_handler (F_VERIFICA, mask_verifica); + m.set_handler (F_ANNULLA, mask_azzera); KEY tasto; diff --git a/cg/cg4400.h b/cg/cg4400.h index b2ddd868e..98399d06f 100755 --- a/cg/cg4400.h +++ b/cg/cg4400.h @@ -2,13 +2,10 @@ // cg4400.h // #include -#include #include #include -#include #include #include -#include #include #include #include @@ -27,27 +24,18 @@ //enum STAMPA { bollati=1, unici=2 }; 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 { TLocalisamfile * _nditte, * _anag, *_comuni; - TString _ragsoc, _cofi, _paiva; - TString _comunefis, _viafis, _provfis, _cap; - long _codditta; - int _stampa_width; + TString80 _ragsoc, _viafis; + TString16 _cofi, _paiva, _comunefis, _provfis, _cap; + long _codditta; + int _stampa_width; + protected: void get_dati_ditta(); TRectype& look_com (const char * codice); + public: const char* prima_riga (); const char* seconda_riga (); @@ -57,15 +45,6 @@ public: 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; TRelation *_rel; TLocalisamfile *_clifo, *_nditte, *_occas, *_tab, *_tabcom; @@ -73,9 +52,10 @@ class CG4400_application : public TPrintapp TRigaiva_array _iva_array, _riga_rmi; TTipodoc_array _doc_array; TRiga_array _tot_iva_array; + + TBit_array _selected; TArray_sheet *_ditte; - TBit_array _selected; - TArray _nomiditte; //array descrizioni ditte per sheet + TRecnotype _nrec; bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri; char _frequiva; @@ -87,7 +67,7 @@ class CG4400_application : public TPrintapp TString _codreg, _desc_lib, _codatt, _attivita; TString _tipodoc, _descr_doc, _codlib; -public: +protected: const char* desc_attivita (const char * codatt); const char* descr_doc (const char * tipo); const char* descr_iva (const char * cod); @@ -117,9 +97,20 @@ public: print_action postprocess_page (int, int); void preprocess_header(); - CG4400_application() : TPrintapp(),_ditte(NULL),_selected(10000), - _nomiditte(100) {} + static bool filter_func (const TRelation * r); + static bool tipostampa_handler (TMask_field&, KEY); + static bool mask_firm_to (TMask_field&, KEY); + static bool mask_cod (TMask_field&, KEY); + static bool mask_data (TMask_field&, KEY); + static bool mask_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() {} }; diff --git a/cg/cg4400a.uml b/cg/cg4400a.uml index 1a741c2f0..b088e0297 100755 --- a/cg/cg4400a.uml +++ b/cg/cg4400a.uml @@ -3,23 +3,24 @@ #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 - PROMPT 2 1 "Tipo stampa " + PROMPT 2 1 "Tipo " ITEM "1|Libri bollati della ditta" MESSAGE SHOW,1@|HIDE,2@|HIDE,3@ ITEM "2|Libri unici dello studio" MESSAGE SHOW,2@|HIDE,1@|HIDE,3@ ITEM "3|Stampa di prova" 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@ END -*/ + +/* NUMBER TIPO_STAMPA 1 BEGIN PROMPT 2 1 "Tipo stampa " @@ -31,15 +32,16 @@ BEGIN ITEM "3|Stampa di prova" ITEM "4|Libri con riferimenti al libro giornale" END +*/ GROUPBOX DLG_NULL 35 5 BEGIN - PROMPT 20 1 "Scelta ditte" + PROMPT 20 2 "Scelta ditte" END NUMBER DA_CODICE 6 BEGIN - PROMPT 21 2 "Da codice " + PROMPT 21 3 "Da codice " HELP "Immettere codice ditta di partenza per la selezione" USE LF_NDITTE KEY 1 CHECKTYPE NORMAL @@ -51,7 +53,7 @@ END NUMBER A_CODICE 6 BEGIN - PROMPT 21 3 "A codice " + PROMPT 21 4 "A codice " HELP "Immettere codice ditta di fine selezione" COPY USE DA_CODICE CHECKTYPE NORMAL @@ -62,46 +64,39 @@ END STRING F_SELECT 6 BEGIN - PROMPT 21 4 "Scelte n. " + PROMPT 21 5 "Scelte n. " FLAGS "D" END -BUTTON DLG_SELECT 9 +BUTTON DLG_SELECT 9 2 BEGIN - PROMPT 42 2 "Selezione" - //MESSAGE EXIT,DLG_SELECT + PROMPT 42 3 "~Selezione" END BUTTON F_ANNULLA 9 BEGIN - PROMPT 42 3 "Azzera" + PROMPT 42 5 "A~zzera" MESSAGE RESET,DA_CODICE|RESET,A_CODICE END -BUTTON F_VERIFICA 9 -BEGIN - PROMPT 42 4 "Verifica" - //MESSAGE EXIT,F_VERIFICA -END - DATE DATA_STAMPA BEGIN - PROMPT 2 6 "Data stampa " + PROMPT 28 7 "Data stampa " FLAG "AH" GROUP 3 END NUMBER ANNO 4 BEGIN - PROMPT 2 7 "Anno " + PROMPT 2 3 "Anno " FLAGS "A" CHECKTYPE REQUIRED END STRING CODICE_LIBRO 3 BEGIN - PROMPT 20 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" + PROMPT 2 7 "Codice libro " + HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate" USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111) INPUT CODTAB[1,4] ANNO INPUT CODTAB[5,7] CODICE_LIBRO @@ -117,8 +112,8 @@ END STRING CODICE_LIBRO_PROVA 3 BEGIN - PROMPT 20 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" + PROMPT 2 7 "Codice libro " + HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate" USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111) INPUT CODTAB[1,4] ANNO INPUT CODTAB[5,7] CODICE_LIBRO_PROVA @@ -134,8 +129,8 @@ END STRING CODICE_LIB_UN 3 BEGIN - PROMPT 20 7 "Cod.libro unico " - HELP "Specificare il codice del libro unico su cui deve essere effettuata la stampa" + PROMPT 2 7 "Libro unico " + HELP "Codice del libro unico su cui deve essere effettuata la stampa" USE %LBU SELECT CODTAB[1,4]==#111 INPUT CODTAB[1,4] ANNO INPUT CODTAB[5,7] CODICE_LIB_UN @@ -151,38 +146,38 @@ END GROUPBOX DLG_NULL 52 3 BEGIN - PROMPT 2 9 "Stampa movimenti" + PROMPT 2 8 "Stampa movimenti" END DATE DA_DATA BEGIN - PROMPT 5 10 "Dalla data " + PROMPT 5 9 "Dalla data " GROUP 3 END DATE A_DATA BEGIN - PROMPT 30 10 "Alla data " + PROMPT 30 9 "Alla data " GROUP 3 END LISTBOX FINO_A_MESE 10 BEGIN - PROMPT 5 10 "Fino al mese " + PROMPT 5 9 "Fino al mese " FLAGS "M" GROUP 1 END LISTBOX MESE 10 BEGIN - PROMPT 5 10 "Mese " + PROMPT 5 9 "Mese " FLAGS "M" GROUP 2 END LISTBOX TIPO_RIEPILOGATIVO 11 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" ITEM "P|Del periodo" ITEM "A|Annuale" @@ -191,21 +186,21 @@ END LISTBOX ULTIMO_MESE 10 BEGIN - PROMPT 2 13 "Ultimo mese stampa su libro unico " + PROMPT 2 11 "Ultimo mese stampa su libro unico " FLAGS "MD" GROUP 2 END NUMBER ULTIMA_PAGINA 4 BEGIN - PROMPT 2 14 "Ultimo numero di pagina stampata libro unico " + PROMPT 2 12 "Ultimo numero di pagina stampata libro unico " FLAGS "R" GROUP 2 END STRING CODICE_LIBRO_IVA 3 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" USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111) INPUT CODTAB[1,4] ANNO @@ -220,13 +215,13 @@ BEGIN GROUP 2 END -BUTTON DLG_PRINT 9 2 +BUTTON DLG_PRINT 10 2 BEGIN PROMPT -12 -1 "~Stampa" MESSAGE EXIT,K_ENTER END -BUTTON DLG_QUIT 9 2 +BUTTON DLG_QUIT 10 2 BEGIN PROMPT -22 -1 "" END diff --git a/cg/cg5300a.uml b/cg/cg5300a.uml index a99433238..f03e6836c 100755 --- a/cg/cg5300a.uml +++ b/cg/cg5300a.uml @@ -1,173 +1,173 @@ -#include "cg5300a.h" -TOOLBAR "" 0 20 0 2 - -#include - -ENDPAGE - -PAGE "Parametri liquidazione" -1 -1 78 15 - -GROUPBOX DLG_NULL 71 3 -BEGIN - PROMPT 4 0 "Ditta" - FLAGS "R" -END - -NUMBER F_CODDITTA 5 -BEGIN - PROMPT 6 1 "Codice " - FLAGS "DFGR" - USE LF_NDITTE - INPUT CODDITTA F_CODDITTA - DISPLAY "Codice" CODDITTA - DISPLAY "Ragione Sociale@50" RAGSOC - OUTPUT F_CODDITTA CODDITTA - OUTPUT F_RAGSOC RAGSOC - CHECKTYPE REQUIRED -END - -STRING F_RAGSOC 50 -BEGIN - PROMPT 20 1 "" - FLAGS "D" -END - -NUMBER F_YEAR 4 -BEGIN - PROMPT 6 3 "Anno " - FIELD LIA->CODTAB - USE LIA - INPUT CODTAB F_YEAR - DISPLAY "Anno@20" CODTAB - OUTPUT F_YEAR CODTAB - KEY 1 - FLAGS "RZ" - CHECKTYPE REQUIRED - ADD MASK "" -END - -GROUPBOX DLG_NULL 71 5 -BEGIN - PROMPT 4 4 "Parametri ditta" -END - -LIST F_FREQ_VERS 14 -BEGIN - PROMPT 6 5 "Frequenza versamenti " - ITEM "M|Mensile" - ITEM "T|Trimestrale" - FIELD LIA->S7 -END - -NUMBER F_CRED_PREC 15 0 -BEGIN - PROMPT 6 6 "Credito precedente " - FIELD LIA->R0 - PICTURE "." - FLAGS "R" -END - -NUMBER F_CRED_COST 15 0 -BEGIN - PROMPT 6 7 "Credito di costo " - FIELD LIA->R5 - PICTURE "." - FLAGS "R" -END - -SPREADSHEET F_SHEET_PLA 75 6 -BEGIN - PROMPT 4 10 "Parametri attivita'" - ITEM "Attivita'" - ITEM "Tipo" - ITEM "Pro-rata@15" - ITEM "Plafond art.8@15" - ITEM "Plafond art.8b@15" - ITEM "Plafond art.9@15" -END - -ENDPAGE -ENDMASK - -PAGE "" -1 -1 65 16 - -NUMBER F_CODATT 5 -BEGIN - PROMPT 4 1 "Codice Attivita' " - FLAGS "DURZG" - USE %AIS - INPUT CODTAB F_CODATT - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_CODATT CODTAB - OUTPUT F_DESATT S0 - CHECKTYPE NORMAL -END - -STRING F_DESATT 50 30 -BEGIN - PROMPT 31 1 "" - FLAGS "D" -END - -LIST F_TIPOATT 26 -BEGIN - PROMPT 4 3 "Tipo " - FLAGS "R" - ITEM " |Altre" - ITEM "M|Mista" - ITEM "E|Mista evidenziata" - ITEM "S|Servizio o mista generica" -END - -NUMBER F_PRORATA 15 0 -BEGIN - PROMPT 4 5 "Pro-Rata " - PICTURE "." - FLAGS "R" - GROUP 1 -END - -NUMBER F_P8 15 0 -BEGIN - PROMPT 4 7 "Plafond art. 8 " - PICTURE "." - FLAGS "R" - GROUP 1 -END - -NUMBER F_P8B 15 0 -BEGIN - PROMPT 4 9 "Plafond art. 8b " - PICTURE "." - FLAGS "R" - GROUP 1 -END - -NUMBER F_P9 15 0 -BEGIN - PROMPT 4 11 "Plafond art. 9 " - PICTURE "." - FLAGS "R" - GROUP 1 -END - - -BUTTON DLG_OK 9 2 -BEGIN - PROMPT -13 -1 "" -END - -BUTTON DLG_CANCEL 9 2 -BEGIN - PROMPT -23 -1 "" -END - -BUTTON DLG_NULL 9 2 -BEGIN - PROMPT -33 -1 "Azzera" - MESSAGE RESET,1@ -END - -ENDPAGE -ENDMASK +#include "cg5300a.h" +TOOLBAR "" 0 20 0 2 + +#include + +ENDPAGE + +PAGE "Parametri liquidazione" -1 -1 78 15 + +GROUPBOX DLG_NULL 71 3 +BEGIN + PROMPT 4 0 "Ditta" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 6 1 "Codice " + FLAGS "DFGR" + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione Sociale@50" RAGSOC + OUTPUT F_CODDITTA CODDITTA + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 20 1 "" + FLAGS "D" +END + +NUMBER F_YEAR 4 +BEGIN + PROMPT 6 3 "Anno " + FIELD LIA->CODTAB + USE LIA + INPUT CODTAB F_YEAR + DISPLAY "Anno@20" CODTAB + OUTPUT F_YEAR CODTAB + KEY 1 + FLAGS "RZ" + CHECKTYPE REQUIRED + ADD MASK "" +END + +GROUPBOX DLG_NULL 71 5 +BEGIN + PROMPT 4 4 "Parametri ditta" +END + +LIST F_FREQ_VERS 14 +BEGIN + PROMPT 6 5 "Frequenza versamenti " + ITEM "M|Mensile" + ITEM "T|Trimestrale" + FIELD LIA->S7 +END + +NUMBER F_CRED_PREC 15 0 +BEGIN + PROMPT 6 6 "Credito precedente " + FIELD LIA->R0 + PICTURE "." + FLAGS "R" +END + +NUMBER F_CRED_COST 15 0 +BEGIN + PROMPT 6 7 "Credito di costo " + FIELD LIA->R5 + PICTURE "." + FLAGS "R" +END + +SPREADSHEET F_SHEET_PLA 78 6 +BEGIN + PROMPT 1 10 "Parametri attivita'" + ITEM "Attivita'" + ITEM "Tipo" + ITEM "Pro-rata@15" + ITEM "Plafond art.8@15" + ITEM "Plafond art.8b@15" + ITEM "Plafond art.9@15" +END + +ENDPAGE +ENDMASK + +PAGE "" -1 -1 65 16 + +NUMBER F_CODATT 5 +BEGIN + PROMPT 4 1 "Codice Attivita' " + FLAGS "DURZG" + USE %AIS + INPUT CODTAB F_CODATT + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODATT CODTAB + OUTPUT F_DESATT S0 + CHECKTYPE NORMAL +END + +STRING F_DESATT 50 30 +BEGIN + PROMPT 31 1 "" + FLAGS "D" +END + +LIST F_TIPOATT 26 +BEGIN + PROMPT 4 3 "Tipo " + FLAGS "U" + ITEM " |Altre" + ITEM "M|Mista" + ITEM "E|Mista evidenziata" + ITEM "S|Servizio o mista generica" +END + +NUMBER F_PRORATA 15 +BEGIN + PROMPT 4 5 "Pro-Rata " + PICTURE "." + FLAGS "R" + GROUP 1 +END + +NUMBER F_P8 15 +BEGIN + PROMPT 4 7 "Plafond art. 8 " + PICTURE "." + FLAGS "R" + GROUP 1 +END + +NUMBER F_P8B 15 +BEGIN + PROMPT 4 9 "Plafond art. 8b " + PICTURE "." + FLAGS "R" + GROUP 1 +END + +NUMBER F_P9 15 +BEGIN + PROMPT 4 11 "Plafond art. 9 " + PICTURE "." + FLAGS "R" + GROUP 1 +END + + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_NULL 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE +ENDMASK diff --git a/cg/conto.h b/cg/conto.h index 383510d6f..bf34f564b 100755 --- a/cg/conto.h +++ b/cg/conto.h @@ -33,6 +33,7 @@ public: const TBill& add_to(TToken_string& ts, int from, int mode = 0); 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; } int gruppo() const { return _gruppo; }