diff --git a/ba/ba3700.cpp b/ba/ba3700.cpp index 11e8b8f9c..1e8852033 100755 --- a/ba/ba3700.cpp +++ b/ba/ba3700.cpp @@ -49,6 +49,9 @@ protected: static bool tipo_prima_rata (TMask_field& f, KEY k); static bool numero_rate (TMask_field& f, KEY k); static bool mese_commerciale (TMask_field& f, KEY k); + static bool fixed_scad (TMask_field& f, KEY k); + static bool tipo_rata (TMask_field& f, KEY k); + static bool ult_class (TMask_field& f, KEY k); void* _app_data; @@ -88,6 +91,11 @@ bool BA3700_application::user_create() _msk->set_handler (F_TIPO_PRIMA_RATA , tipo_prima_rata); _msk->set_handler (F_NUM_RATE , numero_rate); _msk->set_handler (F_MESECOMM , mese_commerciale); + _msk->set_handler (F_FIXSCAD_1 , fixed_scad); + _msk->set_handler (F_FIXSCAD_2 , fixed_scad); + _msk->set_handler (F_FIXSCAD_3 , fixed_scad); + _msk->set_handler (F_TIPO_RATA , tipo_rata); + _msk->set_handler (F_ULT_CLASS , ult_class); shuttle._msk = _msk; shuttle._sht = _cs; @@ -203,7 +211,7 @@ bool BA3700_application::tipo_prima_rata(TMask_field& f, KEY k) // aggiunge o toglie se necessario rata 0, lasciando // le altre e shiftando le scadenze // pag->set_tipo_prima_rata() - if (k != K_TAB) return TRUE; + // if (k != K_TAB) return TRUE; sht* s = (sht*)get_app_data(); TPagamento* pag = s->_pag; @@ -277,6 +285,54 @@ bool BA3700_application::mese_commerciale(TMask_field& f, KEY k) return TRUE; } +bool BA3700_application::fixed_scad(TMask_field& f, KEY k) +{ + // setta mcomm e ricalcola le scadenze + // pag->set_mese_commerciale() + if (k != K_TAB) return TRUE; + sht* s = (sht*)get_app_data(); + TPagamento* pag = s->_pag; + + if (!pag) return TRUE; + + int ir = 0; + if (f.dlg() == F_FIXSCAD_2) ir = 1; + else if (f.dlg() == F_FIXSCAD_3) ir = 2; + + pag->set_fixed_scad(atoi(f.get()),ir); + + return TRUE; +} + +bool BA3700_application::tipo_rata(TMask_field& f, KEY k) +{ + sht* s = (sht*)get_app_data(); + TPagamento* pag = s->_pag; + TSheet_field* shf = s->_sht; + + if (k == K_TAB && pag) + { + pag->set_default_type(atoi(f.get())); + pag->set_sheet(*shf); + } + return TRUE; +} + +bool BA3700_application::ult_class(TMask_field& f, KEY k) +{ + sht* s = (sht*)get_app_data(); + TPagamento* pag = s->_pag; + TSheet_field* shf = s->_sht; + + if (k == K_TAB && pag) + { + pag->set_default_ulc(f.get()); + pag->set_sheet(*shf); + } + return TRUE; +} + + // qui viene il belloccio bool BA3700_application::sheet_action(int r, KEY k) { @@ -296,7 +352,6 @@ bool BA3700_application::sheet_action(int r, KEY k) TToken_string ts(36), ns(36); bool recalc = TRUE; - switch (k) { case K_SPACE: @@ -319,13 +374,10 @@ bool BA3700_application::sheet_action(int r, KEY k) const real p1(newp); if (p0 != p1) // modificata percentuale - { mod = m_perc = TRUE; - } + if (strcmp(ts.get(2),newt) != 0) // modificato tipo pagamento - { mod = m_tipo = TRUE; - } } break; case K_DEL: diff --git a/ba/ba3700.h b/ba/ba3700.h index a2f80504f..388f6f3b8 100755 --- a/ba/ba3700.h +++ b/ba/ba3700.h @@ -12,3 +12,11 @@ #define F_RATE_DIFF 108 #define F_INT_RATE 109 #define F_NUM_RATE 110 +#define F_TIPO_RATA 111 +#define F_EQUAL_FROM 112 +#define F_START_RATA 113 +#define F_ULT_CLASS 114 +#define F_FIXSCAD_1 115 +#define F_FIXSCAD_2 116 +#define F_FIXSCAD_3 117 + diff --git a/ba/ba3700a.uml b/ba/ba3700a.uml index c12348c45..35074611e 100755 --- a/ba/ba3700a.uml +++ b/ba/ba3700a.uml @@ -43,14 +43,14 @@ BEGIN KEY 2 END -GROUPBOX DLG_NULL 71 5 +GROUPBOX DLG_NULL 71 7 BEGIN PROMPT 4 4 "" END STRING F_INIZIOSCAD 1 BEGIN - PROMPT 6 5 "Part.iniz. calcolo " + PROMPT 5 5 "Inizio calcolo" HELP "Modalita' di inizio conteggio calcolo scadenza" FIELD %CPG->S1 SHEET "Cod|Descrizione@30" @@ -63,16 +63,9 @@ BEGIN FLAGS "U" END -BOOLEAN F_MESECOMM -BEGIN - PROMPT 49 5 " Mese commerciale" - HELP "Indicare se si utilizza il mese commerciale (30 gg)" - FIELD %CPG->B0 -END - STRING F_TIPO_PRIMA_RATA 1 BEGIN - PROMPT 6 6 "Tipo prima rata " + PROMPT 28 5 "Tipo prima rata" HELP "Tipo di conteggio per la prima rata" FIELD %CPG->S3 SHEET "Cod|Descrizione@60" @@ -87,33 +80,135 @@ BEGIN ITEM "6|Merce sulla prima rata, imposte e spese sulle altre" END -LIST F_RATE_DIFF 27 -BEGIN - PROMPT 35 6 " Rate " - HELP "Descrizione delle rate" - ITEM "1|Differenziate" - ITEM "2|Uguali" - ITEM "3|Uguali dall'ultima modificata" - ITEM "4|Uguali finche' possibile" -END NUMBER F_NUM_RATE 3 BEGIN - PROMPT 6 7 "Numero di rate " + PROMPT 54 5 "Numero rate" HELP "Numero delle rate" FLAGS "R" END -NUMBER F_INT_RATE 4 +LIST F_TIPO_RATA 25 BEGIN - PROMPT 35 7 "Intervallo tra rate successive " + PROMPT 5 6 "Tipo rata " + HELP "Tipo rata da utilizzare per le scadenze" + ITEM "1|Rimessa diretta o contanti" + ITEM "2|Tratta" + ITEM "3|Ricevuta bancaria" + ITEM "4|Cessione" + ITEM "5|Paghero' appena posso" + ITEM "6|Lettera di credito" + ITEM "7|Tratta accettata" + ITEM "8|Rapporti interbancari diretti" + ITEM "9|Bonifici" +END + +NUMBER F_INT_RATE 3 +BEGIN + PROMPT 50 6 "Intervallo rate" HELP "Giorni di intervallo tra una data e l'altra" FLAGS "R" END -SPREADSHEET F_SHEET_RPG 70 9 + +LIST F_RATE_DIFF 25 BEGIN - PROMPT 4 9 "" + PROMPT 5 7 "Rate " + HELP "Descrizione del meccanismo di generazione rate " + ITEM "1|Differenziate" + ITEM "2|Uguali" + ITEM "3|Uguali dall'ultima modificata" + ITEM "4|Uguali finche' possibile" +END + +STRING F_ULT_CLASS 2 +BEGIN + PROMPT 53 7 "Ult. class." + USE %CLR + INPUT CODTAB[1,1] F_TIPO_RATA SELECT + INPUT CODTAB[2,2] F_ULT_CLASS + DISPLAY "Tipo pagamento" CODTAB[1,1] + DISPLAY "Classificazione" CODTAB[2,2] + DISPLAY "Descrizione@50" S0 + OUTPUT F_ULT_CLASS CODTAB[2,2] + CHECKTYPE NORMAL + HELP "Codice default per ulteriore classificazione della data" +END + +/********************************************************************** + * nuova versione, forse inutile; per ora teniamo la vecchia e vediamo + * cosa dicono + +LIST F_RATE_DIFF 12 +BEGIN + PROMPT 5 7 "Rate " + HELP "Descrizione delle rate " + ITEM "1|Differenziate" MESSAGE DISABLE,F_EQUAL_FROM + ITEM "2|Uguali" MESSAGE ENABLE,F_EQUAL_FROM +// ITEM "3|Uguali dall'ultima modificata" +// ITEM "4|Uguali finche' possibile" +END + +LIST F_EQUAL_FROM 14 +BEGIN + PROMPT 35 7 "a partire da" + ITEM "1|Rata numero... " MESSAGE ENABLE,F_START_RATA + ITEM "2|Ultima modificata" MESSAGE DISABLE,F_START_RATA +END + +NUMBER F_START_RATA 2 +BEGIN + PROMPT 65 7 "" +END + +STRING F_ULT_CLASS 3 +BEGIN + PROMPT 5 9 "Ulteriore classificazione" + USE %CLR + INPUT CODTAB[1,1] F_TIPO_RATA SELECT + INPUT CODTAB[2,2] F_ULT_CLASS + DISPLAY "Tipo pagamento" CODTAB[1,1] + DISPLAY "Classificazione" CODTAB[2,2] + DISPLAY "Descrizione@50" S0 + OUTPUT F_ULT_CLASS CODTAB[2,2] + CHECKTYPE NORMAL + HELP "Codice default per ulteriore classificazione della data" +END + +********************************************************************/ + + +NUMBER F_FIXSCAD_1 2 +BEGIN + PROMPT 5 9 "Giorni scadenza fissi (1)" + FIELD %CPG->I0 + HELP "Giorno scadenza obbligato: prima alternativa" +END + +NUMBER F_FIXSCAD_2 2 +BEGIN + PROMPT 36 9 "(2)" + FIELD %CPG->I1 + HELP "Giorno scadenza obbligato: seconda alternativa" +END + +NUMBER F_FIXSCAD_3 2 +BEGIN + PROMPT 44 9 "(3)" + FIELD %CPG->I2 + HELP "Giorno scadenza obbligato: terza alternativa" +END + +BOOLEAN F_MESECOMM +BEGIN + PROMPT 54 9 "Mese commerciale" + HELP "Indicare se si utilizza il mese commerciale (30 gg)" + FIELD %CPG->B0 +END + +SPREADSHEET F_SHEET_RPG 70 7 +BEGIN + PROMPT 4 11 "" ITEM "N.ro giorni rata" ITEM "Percentuale" ITEM "Tipo" @@ -144,7 +239,7 @@ END NUMBER 103 1 BEGIN - PROMPT 4 5 "Tipo pagamento " + PROMPT 4 5 "Tipo pagamento " HELP "Tipo di pagamento per la rata" SHEET "Codice|Tipo pagamento@32" INPUT 103 @@ -157,7 +252,9 @@ BEGIN ITEM "5|Paghero'" ITEM "6|Lettera di credito" ITEM "7|Tratta accettata" - ITEM "8|Altro pagamento" + ITEM "8|Rapporti interbancari diretti" + ITEM "9|Bonifici" + ITEM "10|Altro pagamento" END STRING 104 28