From 9cf96bbcc51d797241bf030907e57e5ebc07c686 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 24 Mar 2010 15:33:50 +0000 Subject: [PATCH] Patch level : 10.0 684 Files correlati : CG1.EXE CG3.EXE Ricompilazione Demo : [ ] Commento : Bug 0001590: Tabella IV direttiva CEE Aggiungere un ulteriore livello al codice della tabella IV direttiva per permettere l'inserimento delle lettre alfabetiche git-svn-id: svn://10.65.10.50/trunk@20271 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg1100.cpp | 40 ++-------------------------------------- cg/cg1600.cpp | 27 ++++++++++++++------------- cg/cg3200.cpp | 38 +------------------------------------- cg/cglib01.cpp | 44 +++++++++++++++++++++++++++++++++++++++++++- cg/cglib01.h | 2 ++ 5 files changed, 62 insertions(+), 89 deletions(-) diff --git a/cg/cg1100.cpp b/cg/cg1100.cpp index 6f51b46a1..775278afb 100755 --- a/cg/cg1100.cpp +++ b/cg/cg1100.cpp @@ -16,6 +16,7 @@ #include "cg1.h" #include "cg1100.h" +#include "cglib01.h" const char * TAB_IVD = "%IVD"; @@ -104,43 +105,6 @@ public: CG1100_application() : _clivd(8), _clivdo(8), _d1("", 30), _d2("", 32), _d3("", 40), _d4("",32) {} }; -const char * num2str(const TString & s) -{ - TString & str = get_tmp_string(20); - - str = s; - str.trim(); - if (str.len() > 2) - { - str = s.left(2); - const int sub = atoi(s.mid(2)); - switch (sub) - { - case 0: - case 1: - break; - case 2: - str << "bis"; - break; - case 3: - str << "ter"; - break; - case 4: - str << "quater"; - break; - case 5: - str << "quinquies"; - break; - case 6: - str << "sexies"; - break; - default: - break; - } - } - return (const char *) str; -} - bool CG1100_application::process_link(int id, const char* txt) { TToken_string str(txt); @@ -161,7 +125,7 @@ void CG1100_application::init_sort() _sort -> addsortkey ((char*)&(_bil->sez) - (char*)&(_bil->sez),1); _sort -> addsortkey ((char*)&(_bil->let) - (char*)&(_bil->sez),1); _sort -> addsortkey ((char*)&(_bil->numr) - (char*)&(_bil->sez),4); - _sort -> addsortkey ((char*)&(_bil->num) - (char*)&(_bil->sez),4); + _sort -> addsortkey ((char*)&(_bil->num) - (char*)&(_bil->sez),6); _sort -> addsortkey ((char*)&(_bil->gruppo) - (char*)&(_bil->sez),3); _sort -> addsortkey ((char*)&(_bil->conto) - (char*)&(_bil->sez),3); _sort -> addsortkey ((char*)&(_bil->sottoc) - (char*)&(_bil->sez),6); diff --git a/cg/cg1600.cpp b/cg/cg1600.cpp index 2ba50232b..6a6486673 100755 --- a/cg/cg1600.cpp +++ b/cg/cg1600.cpp @@ -22,7 +22,6 @@ #include "cglib01.h" #include "cglib02.h" -extern const char * num2str(const TString & s); class TRiga_sez_opp : public TObject { @@ -140,7 +139,7 @@ class TStampa_IVdirettiva : public TPrintapp char sez; char let; char numr[5]; - char num[5]; + char num[7]; char gruppo[4]; char conto[4]; char sottoc[8]; @@ -312,7 +311,7 @@ void TStampa_IVdirettiva::set_bil_key(bil_ivd* b, char sezione, char lettera, b->let = (conti_ordine && lettera == '\0' && sezione < '3') ? 'Z' : lettera; strcpy(b->numr, numero_romano); - sprintf(b->num , "%4s", numero); + sprintf(b->num , "%-6s", numero); if (gruppo < 0) { strcpy(b->gruppo, "ZZZ"); @@ -1010,6 +1009,8 @@ void TStampa_IVdirettiva::crea_sort_piano_conti_scalare() numerorom = pconti.get(PCN_NUMRIVD); numero = pconti.get(PCN_NUMIVD); + if (numero.full()) + int i = 1; saldo = ZERO; saldo_raf = ZERO; @@ -2176,7 +2177,7 @@ void TStampa_IVdirettiva::stampa_totali() const char* diff_prod = "9B"; TString16 classe; - classe.format("%c%c%8s%2s", _sez_da_stamp,_let_da_stamp,(const char*)_numr_da_stamp,(const char*)_num_da_stamp); + classe.format("%c%c%8s%s", _sez_da_stamp,_let_da_stamp,(const char*)_numr_da_stamp,(const char*)_num_da_stamp); _num = _num_tot; _numr = _numr_tot; @@ -2251,7 +2252,7 @@ void TStampa_IVdirettiva::stampa_totali() { TString16 classe; - classe.format("%c%c%8s%2s",_sez_stamp,_let_stamp,(const char*)_numr_stamp,(const char*)_num_stamp); + classe.format("%c%c%8s%s",_sez_stamp,_let_stamp,(const char*)_numr_stamp,(const char*)_num_stamp); if (_cont_gcs != 0) { @@ -2591,7 +2592,7 @@ void TStampa_IVdirettiva::stampa_totali_con_raffronto() const char* const diff_prod = "9B"; TString16 classe; - classe.format("%c%c%8s%2s", _sez_da_stamp,_let_da_stamp,(const char*)_numr_da_stamp,(const char*)_num_da_stamp); + classe.format("%c%c%8s%s", _sez_da_stamp,_let_da_stamp,(const char*)_numr_da_stamp,(const char*)_num_da_stamp); _num = _num_tot; _numr = _numr_tot; @@ -2672,7 +2673,7 @@ void TStampa_IVdirettiva::stampa_totali_con_raffronto() { TString16 classe; - classe.format("%c%c%8s%2s",_sez_stamp,_let_stamp,(const char*)_numr_stamp,(const char*)_num_stamp); + classe.format("%c%c%8s%s",_sez_stamp,_let_stamp,(const char*)_numr_stamp,(const char*)_num_stamp); if (_cont_gcs != 0) { @@ -3125,7 +3126,7 @@ void TStampa_IVdirettiva::stampa_totali_verifica() { TString16 classe; - classe.format("%c%c%8s%2s", _sez_da_stamp,_let_da_stamp,(const char*)_numr_da_stamp,(const char*)_num_da_stamp); + classe.format("%c%c%8s%s", _sez_da_stamp,_let_da_stamp,(const char*)_numr_da_stamp,(const char*)_num_da_stamp); if (classe > ris_imp && _risimp_fatto) { @@ -3507,7 +3508,7 @@ bool TStampa_IVdirettiva::preprocess_stampa_scalare(int counter) } else { - _classe_stampata.format("%c%c%8s%2s",bil->sez,bil->let,bil->numr,bil->num); + _classe_stampata.format("%c%c%8s%s",bil->sez,bil->let,bil->numr,bil->num); _sez_stamp = bil->sez; _let_stamp = bil->let; _numr_stamp = bil->numr; @@ -3539,7 +3540,7 @@ bool TStampa_IVdirettiva::preprocess_stampa_scalare(int counter) if (_buff != NULL) { bil = (struct bil_ivd*) _buff; - _classe_da_stampare.format("%c%c%8s%2s",bil->sez,bil->let,bil->numr,bil->num); + _classe_da_stampare.format("%c%c%8s%s",bil->sez,bil->let,bil->numr,bil->num); _sez_da_stamp = bil->sez; _let_da_stamp = bil->let; _numr_da_stamp = bil->numr; @@ -3727,7 +3728,7 @@ bool TStampa_IVdirettiva::preprocess_stampa_verifica(int counter) } else { - _classe_stampata = format ("%c%c%8s%2s",bil->sez,bil->let,bil->numr,bil->num); + _classe_stampata = format ("%c%c%8s%s",bil->sez,bil->let,bil->numr,bil->num); _sez_stamp = bil->sez; _let_stamp = bil->let; _numr_stamp = bil->numr; @@ -3780,7 +3781,7 @@ bool TStampa_IVdirettiva::preprocess_stampa_verifica(int counter) if (_buff != NULL) { bil = (struct bil_ivd*) _buff; - _classe_da_stampare = format ("%c%c%8s%2s",bil->sez,bil->let,bil->numr,bil->num); + _classe_da_stampare = format ("%c%c%8s%s",bil->sez,bil->let,bil->numr,bil->num); _sez_da_stamp = bil->sez; _let_da_stamp = bil->let; _numr_da_stamp = bil->numr; @@ -4671,7 +4672,7 @@ void TStampa_IVdirettiva::init_sort() _sort -> addsortkey ((char*)&(_bil->sez) - (char*)&(_bil->sez),1); _sort -> addsortkey ((char*)&(_bil->let) - (char*)&(_bil->sez),1); _sort -> addsortkey ((char*)&(_bil->numr) - (char*)&(_bil->sez),4); - _sort -> addsortkey ((char*)&(_bil->num) - (char*)&(_bil->sez),4); + _sort -> addsortkey ((char*)&(_bil->num) - (char*)&(_bil->sez),6); _sort -> addsortkey ((char*)&(_bil->gruppo) - (char*)&(_bil->sez),3); _sort -> addsortkey ((char*)&(_bil->conto) - (char*)&(_bil->sez),3); _sort -> addsortkey ((char*)&(_bil->sottoc) - (char*)&(_bil->sez),6); diff --git a/cg/cg3200.cpp b/cg/cg3200.cpp index 19226a4a5..fc750c029 100755 --- a/cg/cg3200.cpp +++ b/cg/cg3200.cpp @@ -17,6 +17,7 @@ #include #include #include +#include class TMastrini_record : public TRectype { @@ -32,43 +33,6 @@ public: virtual ~TMastrini_record() { } }; -const char * num2str(const TString & s) -{ - TString & str = get_tmp_string(20); - - str = s; - str.trim(); - if (str.len() > 2) - { - str = s.left(2); - const int sub = atoi(s.mid(2)); - switch (sub) - { - case 0: - case 1: - break; - case 2: - str << " bis"; - break; - case 3: - str << " ter"; - break; - case 4: - str << " quater"; - break; - case 5: - str << " quinquies"; - break; - case 6: - str << " sexies"; - break; - default: - break; - } - } - return (const char *) str; -} - const TString& TMastrini_record::get_str(const char* fieldname) const { if (strcmp(fieldname, RMV_DESCR) == 0) diff --git a/cg/cglib01.cpp b/cg/cglib01.cpp index dfa659927..755916112 100755 --- a/cg/cglib01.cpp +++ b/cg/cglib01.cpp @@ -1120,4 +1120,46 @@ bool TBill::is_analitico() const return true; } return false; -} \ No newline at end of file +} + +const char * num2str(const TString & s) +{ + TString & str = get_tmp_string(20); + + str = s; + str.trim(); + if (str.len() > 2) + { + str = s.left(2); + const int sub = atoi(s.mid(2, 2)); + const TString4 sotsub(s.mid(4)); + + switch (sub) + { + case 0: + case 1: + break; + case 2: + str << " bis"; + break; + case 3: + str << " ter"; + break; + case 4: + str << " quater"; + break; + case 5: + str << " quinquies"; + break; + case 6: + str << " sexies"; + break; + default: + break; + } + if (sotsub.full()) + str << " " << sotsub; + } + return (const char *) str; +} + diff --git a/cg/cglib01.h b/cg/cglib01.h index 3a0a222ca..935e0a12d 100755 --- a/cg/cglib01.h +++ b/cg/cglib01.h @@ -247,4 +247,6 @@ public: enum TIndbil { ib_null, ib_attivita, ib_passivita, ib_costi, ib_ricavi, ib_conti_ordine }; +const char * num2str(const TString & s); + #endif