diff --git a/src/cg/cg1300l.h b/src/cg/cg1300l.h index f63f69c18..029a99a9b 100755 --- a/src/cg/cg1300l.h +++ b/src/cg/cg1300l.h @@ -6,8 +6,8 @@ #define S_DIRTY 101 #define S_CODCF 102 #define S_RAGSOC 103 -#define S_PAIV 104 -#define S_COFI 105 -#define S_ALLEG 106 -#define S_SOSPESO 107 +#define S_SOSPESO 104 +#define S_PAIV 105 +#define S_COFI 106 +#define S_ALLEG 107 #define S_ERROR 108 diff --git a/src/cg/cg1300l.uml b/src/cg/cg1300l.uml index 646144799..38030ddc7 100755 --- a/src/cg/cg1300l.uml +++ b/src/cg/cg1300l.uml @@ -38,10 +38,10 @@ BEGIN ITEM "@1" ITEM "Codice@7" ITEM "Ragione Sociale@50" + ITEM "Sospeso" ITEM "Partita IVA" ITEM "Codice Fiscale@16" ITEM "Allegato@28" - ITEM "Sospeso" ITEM "Problema riscontrato@50" END @@ -70,7 +70,7 @@ END BOOLEAN S_SOSPESO BEGIN - PROMPT 1 6 "Sospeso" + PROMPT 1 3 "Sospeso" END STRING S_PAIV 12 @@ -88,17 +88,21 @@ BEGIN PROMPT -1 4 "Allinea" END -LIST_BOX S_ALLEG 1 28 +LISTBOX S_ALLEG 1 28 BEGIN PROMPT 1 6 "Allegato " - ITEM "0|Valido per allegato IVA" - ITEM "1|Non valido per allegato IVA" - ITEM "2|Occasionale" - ITEM "3|Documenti riepilogativi" - ITEM "4|Codice fiscale già inserito" - ITEM "5|Estero CEE" - ITEM "6|Privato" - ITEM "7|Ente pubblico" + ITEM "0|Valido per allegato IVA" + ITEM "1|Non valido per allegato IVA" + ITEM "2|Occasionale" + ITEM "3|Documenti riepilogativi" + ITEM "4|Codice fiscale già inserito" + ITEM "5|Estero CEE" + ITEM "6|Privato" + ITEM "7|Ente pubblico" + ITEM "8|Fallimento/proc.concorsuale" + ITEM "9|Estero NON CEE" + ITEM "C|Scheda carburante" + ITEM "G|Gruppo IVA" END MEMO S_ERROR 50 3 @@ -129,4 +133,4 @@ END ENDPAGE -ENDMASK \ No newline at end of file +ENDMASK diff --git a/src/cg/cg1309.cpp b/src/cg/cg1309.cpp index f9825ffee..929eac013 100755 --- a/src/cg/cg1309.cpp +++ b/src/cg/cg1309.cpp @@ -15,6 +15,9 @@ class TCheck_PIVA_mask : public TAutomask { + TToken_string _row; + int _last_row; + protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); @@ -25,7 +28,7 @@ protected: public: - TCheck_PIVA_mask() : TAutomask("cg1300l") {} + TCheck_PIVA_mask() : TAutomask("cg1300l"), _last_row(0) {} }; // Carica lo sheet in base alle impostazioni correnti (F_CLIFO, F_COFI) @@ -133,6 +136,8 @@ void TCheck_PIVA_mask::load_sheet() } } s.force_update(); + _row = s.items() > 0 ? s.row(0) : EMPTY_STRING; + _last_row = 0; } // Salva le righe spuntate dello sheet @@ -216,6 +221,21 @@ bool TCheck_PIVA_mask::on_field_event(TOperable_field& o, TField_event e, long j s.force_update(); } break; + case F_CLIFO: + if (e == se_query_modify || e == se_enter) + { + TSheet_field& s = sfield(F_CLIFO); + int r = s.selected(); + + if (_last_row != r && _row != s.row(_last_row)) + { + s.set_row_cell(S_DIRTY, true, _last_row); + s.force_update(_last_row); + } + _row = s.row(r); + _last_row = r; + } + break; case DLG_SAVEREC: if (e == fe_button) { @@ -229,32 +249,31 @@ bool TCheck_PIVA_mask::on_field_event(TOperable_field& o, TField_event e, long j case S_PAIV: if (e == fe_modify) { - if (pi_check("", o.get())) - dirty_sheet_row(); - else - return o.error_box("Partita IVA errata"); + if (!pi_check("", o.get())) + return o.error_box("Partita IVA errata"); } break; case S_COFI: if (e == fe_modify) { - if (cf_check("", o.get())) - dirty_sheet_row(); - else - return o.error_box("Codice fiscale errato"); + if (!cf_check("", o.get())) + return o.error_box("Codice fiscale errato"); } break; - case S_ALLEG: - if (e == fe_modify) - dirty_sheet_row(); - break; case S_SOSPESO: if (e == fe_modify) - dirty_sheet_row(); + { + TSheet_field& s = sfield(F_CLIFO); + int r = s.selected(); + + s.set_row_cell(S_SOSPESO, o.get_bool(), r); + s.force_update(r); + } break; case DLG_USER: if (e == fe_button) { + TSheet_field& s = sfield(F_CLIFO); TMask& m = o.mask(); TLocalisamfile clifo(LF_CLIFO); // Riempio la chiave 1 di CLIFO @@ -264,10 +283,20 @@ bool TCheck_PIVA_mask::on_field_event(TOperable_field& o, TField_event e, long j { if (clifo.read() == NOERR) // Se riesco a rileggerlo ... { - m.set(S_RAGSOC, clifo.get(CLI_RAGSOC)); // aggiorno la ragione sociale, - m.set(S_COFI, clifo.get(CLI_COFI)); // il codice fiscale - m.set(S_PAIV, clifo.get(CLI_PAIV)); // e la partita IVA - dirty_sheet_row(); + int r = s.selected(); + + s.set_row_cell(S_RAGSOC, clifo.get(CLI_RAGSOC), r); // aggiorno la ragione sociale, + s.set_row_cell(S_COFI, clifo.get(CLI_COFI), r); // il codice fiscale + s.set_row_cell(S_PAIV, clifo.get(CLI_PAIV), r); // la partita IVA + + TString4 alleg = clifo.get(CLI_ALLEG); + + if (alleg.blank()) + alleg = "0"; + s.set_row_cell(S_ALLEG, alleg, r); // l'allegato + s.set_row_cell(S_SOSPESO, clifo.get(CLI_SOSPESO), r); // il sospeso + s.force_update(r); + } } }