diff --git a/cg/cg2100k.uml b/cg/cg2100k.uml index 930d45d5b..b613a20f5 100755 --- a/cg/cg2100k.uml +++ b/cg/cg2100k.uml @@ -23,7 +23,7 @@ ENDMASK PAGE "Colore" -1 -1 40 10 -STRING 101 20 +STRING 101 32 BEGIN PROMPT 1 1 "Tipo " END diff --git a/cg/cg2102.cpp b/cg/cg2102.cpp index 71e4d4d38..a829fa2b3 100755 --- a/cg/cg2102.cpp +++ b/cg/cg2102.cpp @@ -290,7 +290,7 @@ void TPrimanota_application::disable_cgs_cells(int n, char tipo) { TSheet_field& cg = cgs(); - int first = 0, last = 0; + int first = 0, last = 0; // Range di righe da disabilitare switch(tipo) { case 'T': // Totale documento @@ -328,16 +328,25 @@ void TPrimanota_application::disable_cgs_cells(int n, char tipo) break; } + bool needs_update = FALSE; + if (last) { for (int i = first; i < last; i++) cg.disable_cell(n, i); - - COLOR back_color, fore_color; - type2colors(tipo, back_color, fore_color); - cg.set_back_and_fore_color(back_color, fore_color, n); - cg.force_update(n); + needs_update = TRUE; } + + COLOR back_color, fore_color; + type2colors(tipo, back_color, fore_color); + if (back_color != NORMAL_BACK_COLOR || fore_color != NORMAL_COLOR) + { + cg.set_back_and_fore_color(back_color, fore_color, n); + needs_update = TRUE; + } + + if (needs_update) + cg.force_update(n); } void TPrimanota_application::reset_sheet_row(TSheet_field& s, int n) diff --git a/cg/cg2105.cpp b/cg/cg2105.cpp index e5bf4c737..48b0b0f92 100755 --- a/cg/cg2105.cpp +++ b/cg/cg2105.cpp @@ -48,7 +48,9 @@ protected: void add_importo(TToken_string& s, const TImporto& i, bool val = FALSE, int pos = -1); void add_descrizione(TToken_string& s, const TRiga_partite& riga, int pos = -1); TImporto get_importo(TToken_string& s, int pos) const; - + + TToken_string& add_colored_row(TSheet_field& sheet, char type) const; + void fill_partite(); void aggiorna_residuo(); @@ -832,7 +834,16 @@ void TGame_mask::aggiorna_sorelle(const TRiga_partite& part) const } } } -*/ +*/ + +TToken_string& TGame_mask::add_colored_row(TSheet_field& sheet, char type) const +{ + int r = sheet.insert(-1, FALSE, FALSE); + COLOR back, fore; + app().type2colors(type, back, fore); + sheet.set_back_and_fore_color(back, fore, r); + return sheet.row(r); +} bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) { @@ -849,9 +860,8 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) gm._riga_partite = r; TSheet_field& sheet = gm.scadenze(); - TString_array& scadenze = sheet.rows_array(); // Array delle righe - scadenze.destroy(); // Azzera righe - + sheet.destroy(-1, FALSE); // Azzera righe + TToken_string& row = partite.row(r); const int anno = row.get_int(0); // Anno partita const TString16 num = row.get(); // Numero partita @@ -870,7 +880,6 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) game = new TPartita(zio, anno, num); // ... creane una temporanea TImporto tot_lit, tot_val; - TToken_string riga_fattura(80); const int lastrow = game->last(); @@ -884,7 +893,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) if (!riga.is_fattura()) continue; - riga_fattura.cut(0); + TToken_string& riga_fattura = gm.add_colored_row(sheet, 'K'); riga_fattura.add(ri); riga_fattura.add(""); riga_fattura.add(riga.get(PART_DATADOC)); @@ -900,13 +909,13 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) riga_fattura.add(riga.get(PART_NUMDOC)); riga_fattura.add(riga.get(PART_PROTIVA)); riga_fattura.add(riga.get(PART_TIPOMOV)); - scadenze.add(riga_fattura); - + for (int ra = 1; ra <= riga.rate(); ra++) { const TRiga_scadenze& scad = riga.rata(ra); - TToken_string& row = scadenze.row(scadenze.add(riga_fattura)); + TToken_string& row = gm.add_colored_row(sheet, 'I'); + row = riga_fattura; row.add(ra, 1); row.add(scad.get(SCAD_DATASCAD), 3); gm.add_importo(row, scad.importo(FALSE), FALSE, 5); @@ -927,7 +936,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) const TRiga_partite& sum = game->riga(pa); const char sez = sum.sezione(); - TToken_string& row = scadenze.row(scadenze.add("")); + TToken_string& row = gm.add_colored_row(sheet, ' '); row.add(ri); row.add(ra); row.add(sum.get(PART_DATADOC)); @@ -957,7 +966,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) const TImporto rit(sez, pag.get_real(PAGSCA_RITENUTE)); if (!rit.is_zero()) { - TToken_string& rrit = scadenze.row(scadenze.add("")); + TToken_string& rrit = gm.add_colored_row(sheet, 'R'); rrit.add("Ritenute professionali", 4); gm.add_importo(rrit, rit, FALSE); rrit.add(sum.get(PART_TIPOMOV), 11); @@ -970,8 +979,8 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) const TImporto abb(sez, pag.get_real(PAGSCA_ABBUONI)); if (!abb.is_zero()) { - TToken_string& rabb = scadenze.row(scadenze.add("")); const char tipo_abb = pag.get_char(PAGSCA_PASSATT); + TToken_string& rabb = gm.add_colored_row(sheet, tipo_abb); rabb.add("Abbuoni ", 4); rabb << (tipo_abb == 'A' ? "attivi" : "passivi"); if (in_valuta) @@ -995,7 +1004,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) const TImporto diff(sez, pag.get_real(PAGSCA_DIFFCAM)); if (!diff.is_zero()) { - TToken_string& rdiff = scadenze.row(scadenze.add("")); + TToken_string& rdiff = gm.add_colored_row(sheet, 'D'); rdiff.add("Differenza cambio", 4); gm.add_importo(rdiff, diff); rdiff.add(sum.get(PART_TIPOMOV), 11); @@ -1005,7 +1014,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) } // Il pagamento era a saldo } // Fine ciclo sui pagamenti della rata - TToken_string& rsal = scadenze.row(scadenze.add("")); + TToken_string& rsal = gm.add_colored_row(sheet, 'S'); rsal.add("Saldo rata ", 4); rsal << ra; if (!scad.chiusa()) { @@ -1031,7 +1040,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) const TRiga_partite& sum = game->riga(pa); const char sez = sum.sezione(); - TToken_string& row = scadenze.row(scadenze.add("")); + TToken_string& row = gm.add_colored_row(sheet, ' '); row.add(pag.get(PAGSCA_NRIGA)); row.add(pag.get(PAGSCA_NRATA)); row.add(sum.get(PART_DATADOC)); @@ -1062,7 +1071,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) const TImporto rit(sez, pag.get_real(PAGSCA_RITENUTE)); if (!rit.is_zero()) { - TToken_string& row = scadenze.row(scadenze.add("")); + TToken_string& row = gm.add_colored_row(sheet, 'R'); row.add("Ritenute professionali", 4); gm.add_importo(row, rit, FALSE); row.add(sum.get(PART_TIPOMOV), 11); @@ -1072,7 +1081,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) if (lastrow > 0) { - TToken_string& sp = scadenze.row(scadenze.add("")); + TToken_string& sp = gm.add_colored_row(sheet, 'T'); sp.add("Saldo partita", 4); if (prima_valuta.in_valuta()) sp << ' ' << prima_valuta.codice(); diff --git a/cg/cg2106.cpp b/cg/cg2106.cpp index 67b7a3a30..08f48d7fc 100755 --- a/cg/cg2106.cpp +++ b/cg/cg2106.cpp @@ -50,11 +50,18 @@ void TRow_mask::update() COLOR back, fore; m.get_cur_colors(back, fore); + _pixmap = TRUE; set_pen(COLOR_BLACK); + + RCT rct; field(100).get_rect(rct); set_brush(back); - frame(2, 4, 16, 6, 0); + frame(rct.left, 2*rct.top - rct.bottom - CHARY/2, rct.right, rct.top - CHARY/2, 0); + + field(99).get_rect(rct); set_brush(fore); - frame(20, 4, 34, 6, 0); + frame(rct.left, 2*rct.top - rct.bottom - CHARY/2, rct.right, rct.top - CHARY/2, 0); + + _pixmap = FALSE; } /////////////////////////////////////////////////////////// @@ -66,17 +73,19 @@ void TColor_mask::get_cur_colors(COLOR& back, COLOR& fore) const { TSheet_field& s = (TSheet_field&)fld(0); TToken_string& row = s.row(s.selected()); - const char tipo = row.right(1)[0]; + const char tipo = row[5]; app().type2colors(tipo, back, fore); } void TColor_mask::set_cur_colors(COLOR back, COLOR fore) { TSheet_field& s = (TSheet_field&)fld(0); - TToken_string& row = s.row(s.selected()); - const char tipo = row.right(1)[0]; + int cur = s.selected(); + TToken_string& row = s.row(cur); + const char tipo = row[5]; app().set_type_colors(tipo, back, fore); - s.set_back_and_fore_color(back, fore, s.selected()); + s.set_back_and_fore_color(back, fore, cur); + s.force_update(cur); } bool TColor_mask::color_handler(TMask_field& f, KEY k) @@ -115,16 +124,34 @@ TColor_mask::TColor_mask() TVariable_sheet_field& s = (TVariable_sheet_field&)fld(0); s.set_getmask(get_mask); - const char* const tipi = "TFSIDNAPRC"; + const char* const tipi = "TFSIDNAPRCGLK"; + const char* const desc[] = + { + "Totale documento", + "Ritenute fiscali", + "Ritenute sociali", + "Generata (Imponibile)", + "IVA detraibile", + "IVA non detraibile", + "Abbuoni attivi", + "Abbuoni passivi", + "Ritenute professionali", + "Differenza cambi", + "Spese", + "Contropartita spese", + "Riga Cliente/Fornitore", + }; + TPrimanota_application& a = app(); int row = 0; - for (const char* c = tipi; *c; c++) + int d = 0; + for (const char* c = tipi; *c; c++, d++) { COLOR back, fore; a.type2colors(*c, back, fore); TToken_string& riga = s.row(-1); - riga << "Riga " << *c; + riga << "Riga " << *c << " - " << desc[d]; s.set_back_and_fore_color(back, fore, row++); } } diff --git a/cg/cg21cg.uml b/cg/cg21cg.uml index 905e92b18..c8cad4ee2 100755 --- a/cg/cg21cg.uml +++ b/cg/cg21cg.uml @@ -362,6 +362,7 @@ BEGIN ITEM "K|Riga Cliente/Fornitore" ITEM "N|IVA non detraibile" ITEM "P|Abbuoni passivi" + ITEM "R|Ritenute professionali" ITEM "S|Ritenute sociali" ITEM "T|Totale documento" FLAGS "D" diff --git a/cg/cg3200.cpp b/cg/cg3200.cpp index 5ae493b7e..bfe682146 100755 --- a/cg/cg3200.cpp +++ b/cg/cg3200.cpp @@ -1428,8 +1428,8 @@ bool TMastrini_application::preprocess_page(int file, int counter) calcola_progressivi(); _totale_saldo = _totprogre_dare_al - _totprogre_avere_al; } - else - _totale_saldo = 1.0; +// else +// _totale_saldo = 1.0; if ((_tipostampa == 1) || (_tipostampa == 2)) {