#include "cg4501.h" #include "cg4500b.h" #include #include #include #include bool TAp_iva::mask_annoiva (TMask_field& f, KEY k) { if ( (k == K_ENTER) && f.to_check(k) ) { const int annoiva = f.mask().get_int(F_ANNOIVA); const int annoivap = ini_get_int(CONFIG_DITTA, "cg", "AnLiIv"); if (annoivap > 0 && annoiva != annoivap + 1) return f.error_box(FR("Il nuovo anno esercizio IVA deve essere %d"), (annoivap+1)); } return true; } bool TAp_iva::create() { open_files(LF_TAB, LF_TABCOM, LF_NDITTE, 0); enable_menu_item(M_FILE_NEW, FALSE); return TSkeleton_application::create(); } /* void TAp_iva::libro_unico() { TString4 annoiva; annoiva.format("%04d", _annoiva); //viene aggiornata la tabella del libro unico. TRelation lbu("%LBU"); TRectype & tablbu = lbu.curr(); tablbu.put ("CODTAB", annoiva); TCursor cur(&lbu, "", 1, &tablbu, &tablbu); TRecnotype items = cur.items(); cur.freeze(); for (cur = 0L; cur.pos() < items; ++cur) lbu.remove(); cur.freeze(FALSE); tablbu.zero(); tablbu.put ("CODTAB", _annop); cur.setregion(tablbu, tablbu); items = cur.items(); cur.freeze(); for (cur = 0L; cur.pos() < items; ++cur) { TString16 cod(tablbu.get("CODTAB")); cod.overwrite(annoiva); tablbu.put("CODTAB", cod); tablbu.zero("I0"); lbu.write(); } } */ bool TAp_iva::apertura_iva() { TString16 codlia; TString4 annoiva; annoiva.format("%04d", _annoiva); //viene aggiornata la tabella LIA (liquidazione iva annuale) TTable tablia ("%LIA"); codlia.format("%05ld%04d", get_firm(), _annoiva); tablia.put ("CODTAB", codlia); if (tablia.read() == NOERR) tablia.remove(); tablia.zero(); codlia.format("%05ld%04d", get_firm(), _annop); tablia.put ("CODTAB", codlia); if (tablia.read() != NOERR) return error_box(TR("Non esiste il record relativo all'anno IVA precedente sulla tabella liquidazione annuale IVA")); else { codlia.format("%05ld%04d", get_firm(), _annoiva); tablia.put("CODTAB", codlia); tablia.put("S7", _frequenza); tablia.put("B2", _is_minagr); tablia.zero("R0"); if (tablia.get_bool("B5")) // IVA per casssa { tablia.put("D0", TDate( 1, 1, _annoiva)); tablia.put("D1", TDate(31,12, _annoiva)); } tablia.write(); } // libro_unico(); // Obsoleto? //viene aggiornata la tabella dei registri. TRelation reg("REG"); TRectype & tabreg = reg.curr(); tabreg.put ("CODTAB", annoiva); TCursor cur_reg(®, "", 1, &tabreg, &tabreg); TRecnotype items = cur_reg.items(); cur_reg.freeze(); for (cur_reg = 0L; cur_reg.pos() < items; ++cur_reg) { const int tiporeg = tabreg.get_int("I0"); if ((tiporeg == 1) || (tiporeg == 2) || (tiporeg == 3) || (tiporeg==9)) reg.remove(); } cur_reg.freeze(FALSE); tabreg.zero(); tabreg.put ("CODTAB", _annop); cur_reg.setregion(tabreg, tabreg); items = cur_reg.items(); cur_reg.freeze(); for (cur_reg = 0L; cur_reg.pos() < items; ++cur_reg) { const int tiporeg = tabreg.get_int("I0"); if ( (tiporeg == 1)||(tiporeg == 2)||(tiporeg==3)||(tiporeg==9)) { TString16 cod = tabreg.get("CODTAB"); cod.overwrite(annoiva); tabreg.put("CODTAB", cod); tabreg.zero("I1"); tabreg.zero("I2"); tabreg.zero("I4"); tabreg.zero("I5"); tabreg.zero("I6"); tabreg.zero("S1"); tabreg.zero("D0"); tabreg.zero("D2"); tabreg.zero("D3"); tabreg.zero("R1"); tabreg.zero("R2"); reg.write(); } } //viene aggiornato l'anno iva sui parametri ditta ini_set_int(CONFIG_DITTA, "cg", "AnLiIv", _annoiva); //sull'anagrafica ditte viene aggiornata la frequenza versamento TLocalisamfile nditte (LF_NDITTE); nditte.put("CODDITTA", _ditta); if (nditte.read(_isequal, _lock) == NOERR) { nditte.put(NDT_FREQVIVA, _frequenza); nditte.rewrite(); } message_box(TR("Apertura nuovo esercizio IVA completata")); return true; } void TAp_iva::main_loop() { TMask msk ("cg4500b"); TConfig conf(CONFIG_DITTA); _annop = conf.get_int("AnLiIv"); if (_annop <= 0) _annop = TDate(TODAY).year() - 1; int aivap = _annop; int anno = aivap+1; _is_minagr = FALSE; TTable tablia ("%LIA"); TString16 chiave; tablia.zero(); chiave.format("%05ld%04d", get_firm(), anno); tablia.put("CODTAB",chiave); if (tablia.read() == NOERR) { msk.set(F_FREQUENZA, tablia.get("S7")); _is_minagr = tablia.get_bool("B2"); } else { tablia.zero(); chiave = ""; chiave.format("%05ld%04d", get_firm(), aivap); tablia.put("CODTAB", chiave); if (tablia.read() == NOERR) { msk.set(F_FREQUENZA, tablia.get("S7")); _is_minagr = tablia.get_bool("B2"); } else { TString16 key; key.format("%ld", get_firm()); const TString & freq_iva = cache().get(LF_NDITTE, key, NDT_FREQVIVA); msk.set(F_FREQUENZA, freq_iva); } } msk.set(F_ANNOIVA, anno); msk.set_handler (F_ANNOIVA, mask_annoiva); if (msk.run() == K_ENTER) { _ditta = msk.get_long(F_CODDITTA); _annoiva = msk.get_int(F_ANNOIVA); _frequenza = msk.get(F_FREQUENZA)[0]; apertura_iva(); } }