diff --git a/cg/cg6400.cpp b/cg/cg6400.cpp index ad7800d95..a284f07c8 100755 --- a/cg/cg6400.cpp +++ b/cg/cg6400.cpp @@ -722,7 +722,7 @@ bool TRic_archivi::baipassa(TMask& m,KEY k) // else // Modifica del 05-06-96 xche' con le nuove maschere non // app()._baipassa = FALSE; // funziona piu', in quanto passa dall' handler anche quando // faccio il conferma. - return FALSE; + return TRUE; } void TRic_archivi::ripristina_trasfer() diff --git a/cg/cg6700.cpp b/cg/cg6700.cpp index 2abbb6fe5..7e3942e32 100755 --- a/cg/cg6700.cpp +++ b/cg/cg6700.cpp @@ -455,8 +455,6 @@ void TRic_ListaMov::apri_file_SC() exp1.add("NUMPART==NUMPART"); _relSC->add(_tpagsca,exp1,1,0,0,FALSE); _curSC = add_cursor(new TCursor (_relSC, "", 1)); // Cursore definito sui movimenti del saldaconto - - _ho_stampato = FALSE; } } @@ -970,7 +968,8 @@ bool TRic_ListaMov::controlla_riva() int tipodet, tipocr, gruppocr, contocr; long sottocontocr; real impo, impos; - bool testata = TRUE; + bool testata = TRUE; + bool no_grave = FALSE; if (current_cursor()->is_first_match(LF_RMOVIVA)) { @@ -1080,37 +1079,47 @@ bool TRic_ListaMov::controlla_riva() iva.zero(); iva.put("CODTAB", codiva); if (iva.read() != NOERR) - { - rmoviva.readat(nrec); - return TRUE; + { + no_grave = TRUE; +// rmoviva.readat(nrec); +// return TRUE; } if ( tipocr != 0 && tipocr != 1 && tipocr != 2 && tipocr != 3 && tipocr != 4 && tipocr != 5 && tipocr != 8 && tipocr != 9 ) { - rmoviva.readat(nrec); - return TRUE; + no_grave = TRUE; +// rmoviva.readat(nrec); +// return TRUE; } if (gruppocr == 0 || contocr == 0 || sottocontocr == 0l) - { - rmoviva.readat(nrec); - return TRUE; + { + no_grave = TRUE; +// rmoviva.readat(nrec); +// return TRUE; } else if (gruppocr != 0 && contocr != 0 && sottocontocr != 0l) { bool ok = errori_partita(gruppocr,contocr,sottocontocr); if (!ok) - { - rmoviva.readat(nrec); - return TRUE; + { + no_grave = TRUE; +// rmoviva.readat(nrec); +// return TRUE; } } if (tipodet != 0 && tipodet != 1 && tipodet != 3 && tipodet != 9) - { - rmoviva.readat(nrec); - return TRUE; + { + no_grave = TRUE; +// rmoviva.readat(nrec); +// return TRUE; } - } + } + if (no_grave) + { + rmoviva.readat(nrec); + return TRUE; + } rmoviva.readat(nrec); } return FALSE; @@ -3107,6 +3116,7 @@ bool TRic_ListaMov::set_print(int m) _errore_grave_SC = FALSE; _intestaSC = TRUE; _prima_volta = TRUE; + _ho_stampato = FALSE; } else { @@ -3171,6 +3181,7 @@ bool TRic_ListaMov::set_print(int m) _errore_grave_SC = FALSE; _intestaSC = TRUE; _prima_volta = TRUE; + _ho_stampato = FALSE; } else { diff --git a/cg/cg6804.cpp b/cg/cg6804.cpp index 2f78fb075..02fd7171a 100755 --- a/cg/cg6804.cpp +++ b/cg/cg6804.cpp @@ -311,16 +311,55 @@ void TVar_sc::descr_condpag(const TString& codpag,int tipopag,const TString& ult } else { - TTable cpg ("%CPG"); - TString dep (format("%4d", (const char*) codpag)); - - cpg.zero(); - cpg.put("CODTAB", dep); - if (cpg.read() == NOERR) - d_condpag = cpg.get("S0"); - else - d_condpag = ""; - } + TTable rpg ("%RPG"); + int tipo; + + TString dep; + for (int i = 0; !rpg.eof(); rpg.next(), i++) + { + dep.format("%-s%3d", (const char*) codpag, i); + + rpg.zero(); + rpg.put("CODTAB", dep); + if (rpg.read() == NOERR) + { + tipo = rpg.get_int("I1"); + if (tipo == tipopag) + { + switch(tipo) + { + case 1: d_condpag = "Rimessa diretta"; + break; + case 2: d_condpag = "Tratta"; + break; + case 3: d_condpag = "Ricevuta bancaria"; + break; + case 4: d_condpag = "Cessione"; + break; + case 5: d_condpag = "Paghero'"; + break; + case 6: d_condpag = "Lettera di credito"; + break; + case 7: d_condpag = "Tratta accettata"; + break; + case 8: d_condpag = "Rapporti interbancari diretti"; + break; + case 9: d_condpag = "Bonifico"; + break; + case 10: d_condpag = "Altro"; + break; + default: break; + }; + break; + } + } + else + { + d_condpag = ""; + break; + } + } + } } void TVar_sc::setta_mask_scad(char tipo,int gruppo,int conto,long sottoc, @@ -1203,36 +1242,84 @@ bool TVar_sc::nrata_handler(TMask_field& f, KEY k) bool TVar_sc::codpag_handler(TMask_field& f, KEY k) { - if ( (k == K_TAB || k == K_ENTER) && f.mask().is_running()) + if ( (k == K_TAB || k == K_ENTER) ) { TString descr; - int tipo; TString codpag = f.get(); if (codpag.not_empty()) - { - TTable cpg ("%CPG"); - TString dep (format("%-4s", (const char*) codpag)); + { + if (f.mask().is_running()) + { + TTable cpg ("%CPG"); + TString dep (format("%-4s", (const char*) codpag)); - cpg.zero(); - cpg.put("CODTAB", dep); - if (cpg.read() == NOERR) - { - descr = cpg.get("S0"); - tipo = atoi(cpg.get("S4")); + cpg.zero(); + cpg.put("CODTAB", dep); + if (cpg.read() != NOERR) + return f.warning_box("Codice di pagamento errato o non presente in tabella"); } - else - return f.warning_box("Codice di pagamento errato o non presente in tabella"); - + TTable rpg ("%RPG"); + int tipo; + int tipopag = f.mask().get_int(112); - if (tipopag != 0) + + TString dep; + for (int i = 0; !rpg.eof(); rpg.next(), i++) { - if (tipopag != tipo) - return f.warning_box("Il tipo pagamento della scadenza non e' congruo con il tipo pagamento del codice di pagamento"); + dep.format("%-s%3d", (const char*) codpag, i); + + rpg.zero(); + rpg.put("CODTAB", dep); + if (rpg.read() == NOERR) + { + tipo = rpg.get_int("I1"); + if (tipo == tipopag) + { + switch(tipo) + { + case 1: descr = "Rimessa diretta"; + break; + case 2: descr = "Tratta"; + break; + case 3: descr = "Ricevuta bancaria"; + break; + case 4: descr = "Cessione"; + break; + case 5: descr = "Paghero'"; + break; + case 6: descr = "Lettera di credito"; + break; + case 7: descr = "Tratta accettata"; + break; + case 8: descr = "Rapporti interbancari diretti"; + break; + case 9: descr = "Bonifico"; + break; + case 10: descr = "Altro"; + break; + default: break; + }; + break; + } + } + else + { + descr = ""; + break; + } + } + if (f.mask().is_running()) + { + if (tipopag != 0) + { + if (tipopag != tipo) + return f.warning_box("Il tipo pagamento della scadenza non e' congruo con il tipo pagamento del codice di pagamento"); + } + else + f.mask().set(112,tipo); } - else - f.mask().set(112,tipo); } TString ultclass = f.mask().get(113); if (ultclass.empty()) @@ -1278,7 +1365,62 @@ bool TVar_sc::ultclass_handler(TMask_field& f, KEY k) TString ultclass = f.get(); int tipopag = f.mask().get_int(112); - if (ultclass.empty()) return TRUE; + if (ultclass.empty()) + { + TTable rpg ("%RPG"); + int tipo; + + TString codpag = f.mask().get(111); + int tipopag = f.mask().get_int(112); + + TString dep; + for (int i = 0; !rpg.eof(); rpg.next(), i++) + { + dep.format("%-s%3d", (const char*) codpag, i); + + rpg.zero(); + rpg.put("CODTAB", dep); + if (rpg.read() == NOERR) + { + tipo = rpg.get_int("I1"); + if (tipo == tipopag) + { + switch(tipo) + { + case 1: descr = "Rimessa diretta"; + break; + case 2: descr = "Tratta"; + break; + case 3: descr = "Ricevuta bancaria"; + break; + case 4: descr = "Cessione"; + break; + case 5: descr = "Paghero'"; + break; + case 6: descr = "Lettera di credito"; + break; + case 7: descr = "Tratta accettata"; + break; + case 8: descr = "Rapporti interbancari diretti"; + break; + case 9: descr = "Bonifico"; + break; + case 10: descr = "Altro"; + break; + default: break; + }; + break; + } + } + else + { + descr = ""; + break; + } + } + f.mask().set(114, descr); + return TRUE; + } TTable clr ("%CLR"); TString dep (format("%d%s", tipopag,(const char*) ultclass)); diff --git a/cg/cg6804c.uml b/cg/cg6804c.uml index 95766dcf7..509cde3b6 100755 --- a/cg/cg6804c.uml +++ b/cg/cg6804c.uml @@ -1,3 +1,4 @@ + TOOLBAR "" 0 20 0 2 BUTTON DLG_OK 8 2 @@ -192,7 +193,7 @@ BEGIN USE %VAL INPUT CODTAB 124 DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@5" S0 + DISPLAY "Descrizione@50" S0 OUTPUT 124 CODTAB CHECKTYPE NORMAL FLAGS "U"