diff --git a/cg/cg4.url b/cg/cg4.url index 3dcebdec8..cf36a3063 100755 --- a/cg/cg4.url +++ b/cg/cg4.url @@ -3,24 +3,24 @@ /* cg4 -0 Calcolo movimenti e saldi */ MENU TASK_MENUBAR - SUBMENU MENU_FILE "~File" + SUBMENU MENU_FILE "~File" /* cg4 -1 Copia archivi piano conti, causali, clienti/fornitori iv direttiva */ MENUBAR MENU_BAR(1) MENU MENU_BAR(1) - SUBMENU MENU_FILE "~File" + SUBMENU MENU_FILE "~File" /* cg4 -2 Calcolo liquidazione IVA */ MENUBAR MENU_BAR(2) MENU MENU_BAR(2) - SUBMENU MENU_FILE "~File" + SUBMENU MENU_FILE "~File" /* - ITEM BAR_ITEM(1) "~Liquidazione" - ITEM BAR_ITEM(2) "~Deleghe" - ITEM BAR_ITEM(3) "~Acconto" + ITEM BAR_ITEM(1) "~Liquidazione" + ITEM BAR_ITEM(2) "~Deleghe" + ITEM BAR_ITEM(3) "~Acconto" */ /* cg4 -3 Stampa registri IVA */ @@ -28,28 +28,26 @@ MENU MENU_BAR(2) MENUBAR MENU_BAR(3) MENU MENU_BAR(3) - SUBMENU MENU_FILE "~File" + SUBMENU MENU_FILE "~File" /* cg4 -4 Apertura nuovo esercizio/nuovo esercizio IVA */ MENUBAR MENU_BAR(4) MENU MENU_BAR(4) - SUBMENU MENU_FILE "~File" - ITEM BAR_ITEM(1) "~Apertura nuovo esercizio" - ITEM BAR_ITEM(2) "Apertura nuovo esercizio ~IVA" + SUBMENU MENU_FILE "~File" /* cg4 -5 Chiusura Apertura Conti */ MENUBAR MENU_BAR(5) MENU MENU_BAR(5) - SUBMENU MENU_FILE "~File" + SUBMENU MENU_FILE "~File" /* cg4 -6 Visualizzazione liquidazione */ MENUBAR MENU_BAR(6) MENU MENU_BAR(6) - SUBMENU MENU_FILE "~File" + SUBMENU MENU_FILE "~File" diff --git a/cg/cg4500.cpp b/cg/cg4500.cpp index d8c6d8d04..b2b27708c 100755 --- a/cg/cg4500.cpp +++ b/cg/cg4500.cpp @@ -1,5 +1,4 @@ -// Apertura nuovo esercizio/nuovo esercizio IVA - +// Apertura nuovo esercizio #include #include #include @@ -7,7 +6,6 @@ #include #include #include - #include #include #include @@ -15,21 +13,11 @@ #include #include +#include "cg4501.h" #include "cg4500a.h" -#include "cg4500b.h" -bool mask_dataini (TMask_field&, KEY); -bool mask_newanno (TMask_field&, KEY); -bool mask_annoiva (TMask_field&, KEY); -bool mask_frequenza (TMask_field&, KEY); - -class CG4500_application : public TApplication +class TAp_eser : public TApplication { - friend bool mask_dataini (TMask_field&, KEY); - friend bool mask_newanno (TMask_field&, KEY); - friend bool mask_annoiva (TMask_field&, KEY); - friend bool mask_frequenza (TMask_field&); - TTable* _esc, * _reg, * _lia, * _lbu; TLocalisamfile* _nditte; int _anno, _newanno, _annoiva; @@ -38,19 +26,19 @@ class CG4500_application : public TApplication long _ditta; char _frequenza; +protected: + static bool mask_dataini (TMask_field&, KEY); + static bool mask_newanno (TMask_field&, KEY); + public: virtual bool create(); virtual bool destroy(); virtual bool menu(MENU_TAG m); - void create_files(); - void destroy_files(); bool set(); - bool setta(); bool apertura_es(); - bool apertura_iva(); - CG4500_application() {} + TAp_eser() {} }; TDate InizioEsercizio(int anno) @@ -85,7 +73,7 @@ TDate FineEsercizio(int anno) return fine_es; } -bool mask_newanno (TMask_field& f, KEY k) +bool TAp_eser::mask_newanno (TMask_field& f, KEY k) { TTable TabEs ("ESC"); TString codtab; @@ -114,24 +102,7 @@ bool mask_newanno (TMask_field& f, KEY k) return TRUE; } -bool mask_annoiva (TMask_field& f, KEY k) -{ - if ( (k == K_ENTER) && f.to_check(k) ) - //if ( (k == K_TAB) && f.mask().is_running() ) - { - int annoiva = f.mask().get_int(F_ANNOIVA); - TConfig conf(CONFIG_DITTA); - int annoivap = atoi(conf.get("AnLiIv")); - if (annoiva != annoivap + 1) - { - f.warning_box("Il nuovo anno esercizio IVA deve essere successivo all'anno esercizio IVA precedente"); - return FALSE; - } - } - return TRUE; -} - -bool mask_dataini (TMask_field& f, KEY k) +bool TAp_eser::mask_dataini (TMask_field& f, KEY k) { if ( (k == K_ENTER) && f.to_check(k) ) { @@ -153,174 +124,67 @@ bool mask_dataini (TMask_field& f, KEY k) return TRUE; } -void CG4500_application::create_files() +bool TAp_eser::create() { _nditte = new TLocalisamfile(LF_NDITTE); _esc = new TTable("ESC"); _reg = new TTable("REG"); _lia = new TTable("%LIA"); _lbu = new TTable("%LBU"); + + enable_menu_item(M_FILE_NEW, FALSE); + + dispatch_e_menu (BAR_ITEM(1)); + + return TRUE; } -void CG4500_application::destroy_files() +bool TAp_eser::destroy() { delete _nditte; delete _esc; delete _reg; delete _lia; delete _lbu; -} - -bool CG4500_application::create() -{ - TApplication::create(); - create_files(); - enable_menu_item(M_FILE_NEW, FALSE); - dispatch_e_menu (BAR_ITEM(1)); return TRUE; } -bool CG4500_application::destroy() -{ - destroy_files(); - - return TApplication::destroy(); -} - -bool CG4500_application::set() +bool TAp_eser::menu(MENU_TAG m) { TTable TabEs ("ESC"); - TMask m ("cg4500a"); - - KEY tasto; + TMask msk ("cg4500a"); - /* - if (TabEs.last() == NOERR) - { - int anno = TabEs.get_int ("CODTAB"); - TDate inizio = TabEs.get_date("D0"); //data inizio es. in corso - TDate fine = TabEs.get_date("D1"); //data fine es. in corso - - m.show (F_ANNO); - m.show (F_DATAINIC); - m.show (F_DATAFINC); - - m.set(F_ANNO, (long) anno); - m.set(F_DATAINIC, inizio.string()); - m.set(F_DATAFINC, fine.string()); - } - else - { - m.hide(F_ANNO); - m.hide(F_DATAINIC); - m.hide(F_DATAFINC); - } - */ - if (TabEs.last() != NOERR) - { - error_box("Non e' ancora stato aperto alcun esercizio!"); - return FALSE; - } - + return error_box("Non e' ancora stato aperto alcun esercizio!"); + int anno = TabEs.get_int ("CODTAB"); TDate inizio = TabEs.get_date("D0"); //data inizio es. in corso TDate fine = TabEs.get_date("D1"); //data fine es. in corso - m.set(F_ANNO, anno); - m.set(F_DATAINIC, inizio.string()); - m.set(F_DATAFINC, fine.string()); - m.set(F_NUOVOANNO, anno+1); + msk.set(F_ANNO, anno); + msk.set(F_DATAINIC, inizio.string()); + msk.set(F_DATAFINC, fine.string()); + msk.set(F_NUOVOANNO, anno+1); - m.set_handler (F_NUOVOANNO, mask_newanno); - m.set_handler (F_DATAINI, mask_dataini); + msk.set_handler (F_NUOVOANNO, mask_newanno); + msk.set_handler (F_DATAINI, mask_dataini); - tasto = m.run(); - - if (tasto == K_ENTER) + if (msk.run() == K_ENTER) { - _anno = m.get_int(F_ANNO); - _datainp = m.get(F_DATAINIC); - _datafip = m.get(F_DATAFINC); - _newanno = m.get_int(F_NUOVOANNO); //nuovo anno esercizio - _dataini = m.get(F_DATAINI); - _datafin = m.get(F_DATAFIN); + _anno = msk.get_int(F_ANNO); + _datainp = msk.get(F_DATAINIC); + _datafip = msk.get(F_DATAFINC); + _newanno = msk.get_int(F_NUOVOANNO); //nuovo anno esercizio + _dataini = msk.get(F_DATAINI); + _datafin = msk.get(F_DATAFIN); - return TRUE; - } - return FALSE; -} - -bool CG4500_application::setta() -{ - TTable TabLia ("%LIA"); - TLocalisamfile nditte (LF_NDITTE); - TMask m ("cg4500b"); - KEY tasto; - - TConfig conf(CONFIG_DITTA); - _annop = conf.get("AnLiIv"); - //int aivap = atoi(conf.get("AnLiIv")); - //TString16 anno ( format("%04d", aivap+1) ); - int aivap = atoi(_annop); - int anno = aivap+1; - - TabLia.zero(); - TString16 chiave; chiave.format("%05ld%04d", get_firm(), anno); - TabLia.put("CODTAB",chiave); - if (TabLia.read() == NOERR) - m.set(F_FREQUENZA, TabLia.get("S7")); - else - { - TabLia.zero(); - chiave = ""; - chiave.format("%05ld%04d", get_firm(), aivap); - TabLia.put("CODTAB", chiave); - if (TabLia.read() == NOERR) - m.set(F_FREQUENZA, TabLia.get("S7")); - else - { - nditte.zero(); - nditte.put("CODDITTA", get_firm()); - if (nditte.read() == NOERR) - m.set(F_FREQUENZA, nditte.get(NDT_FREQVIVA)); - } - } - - m.set(F_ANNOIVA, aivap+1); - - m.set_handler (F_ANNOIVA, mask_annoiva); - - tasto = m.run(); - - if (tasto == K_ENTER) - { - _ditta = m.get_long(F_CODDITTA); - _annoiva = m.get_int(F_ANNOIVA); - _frequenza = m.get(F_FREQUENZA)[0]; - - return TRUE; - } - return FALSE; -} - -bool CG4500_application::menu(MENU_TAG m) -{ - switch (m) - { - case BAR_ITEM(1): apertura_es(); - break; - case BAR_ITEM(2): - apertura_iva(); - break; } - //return TApplication::menu(m); - return TRUE; + return FALSE; } -bool CG4500_application::apertura_es() +bool TAp_eser::apertura_es() { TTable TabReg ("REG"); TTable TabEs ("ESC"); @@ -329,12 +193,8 @@ bool CG4500_application::apertura_es() TDate data; bool ok = FALSE; - if (!set()) - return FALSE; - //viene aggiornata la tabella dei registri. Se esisteva gia' un record relativo al nuovo esercizio, viene cancellato. //In ogni caso ne viene creato uno nuovo relativo al nuovo esercizio. - TabReg.zero(); annonew = format ("%04d", _newanno); TabReg.put ("CODTAB", annonew); @@ -403,184 +263,21 @@ bool CG4500_application::apertura_es() return TRUE; } -bool CG4500_application::apertura_iva() -{ - TTable TabReg ("REG"); - TTable TabLia ("%LIA"); - TTable TabLbu ("%LBU"); - TLocalisamfile nditte (LF_NDITTE); - TString annoiva (4); - TDate data; - bool ok = FALSE; - - if (!setta()) - return FALSE; - - int annop = atoi(_annop); - annoiva = format("%04d", _annoiva); - - //viene aggiornata la tabella LIA (liquidazione iva annuale) - TabLia.zero(); - TabLia.put ("CODTAB", format("%05ld%04d", get_firm(), _annoiva)); - if (TabLia.read() == NOERR) - TabLia.remove(); - - TabLia.zero(); - TRectype newrec (TabLia.curr()); - TabLia.put ("CODTAB", format("%05ld%04d", get_firm(), annop)); - - if (TabLia.read() == NOERR) - { - ok = TRUE; - newrec = TabLia.curr(); - newrec.put("CODTAB", format("%05ld%04d", get_firm(), _annoiva)); - newrec.put("S7", _frequenza); - - TabLia.write(newrec); - } - if (!ok) - { - error_box("Non esiste il record relativo all'anno iva precedente sulla tabella liquidazione annuale iva"); - return FALSE; - } - - //viene aggiornata la tabella del libro unico. - TabLbu.zero(); - TabLbu.put ("CODTAB", annoiva); - - TRectype r (TabLbu.curr()); - - TabLbu.read(_isgteq); - - for (; !TabLbu.eof(); TabLbu.next()) - { - if (TabLbu.curr() != r) break; - - TabLbu.remove(); - } - - ok = FALSE; - TabLbu.zero(); - TRectype nrec (TabLbu.curr()); - TabLbu.put ("CODTAB", _annop); - - TRectype rec (TabLbu.curr()); - - TabLbu.read(_isgteq); - - for (; !TabLbu.eof(); TabLbu.next()) - { - if (TabLbu.curr() != rec) break; - - TRecnotype nr = TabLbu.recno(); - TString cod_lib = TabLbu.get("CODTAB"); - cod_lib = cod_lib.mid(4,3); - ok = TRUE; - nrec = TabLbu.curr(); - TString16 cod; - cod << _annoiva << cod_lib; - nrec.put("CODTAB", cod); - nrec.put("I0", 0L); - - TabLbu.write(nrec); - TabLbu.readat(nr); - } - /* - if (!ok) - { - error_box("Non esistono i registri del libro unico relativi all'anno iva precedente"); - return FALSE; - } - */ - - //viene aggiornata la tabella dei registri. - TabReg.zero(); - TabReg.put ("CODTAB", annoiva); - - TRectype rr (TabReg.curr()); - - TabReg.read(_isgteq); - - for (; !TabReg.eof(); TabReg.next()) - { - if (TabReg.curr() != rr) break; - - int tiporeg = TabReg.get_int("I0"); - if ( (tiporeg == 1)||(tiporeg == 2)||(tiporeg == 3) ) - TabReg.remove(); - } - - ok = FALSE; - TabReg.zero(); - TRectype nuovo (TabReg.curr()); - TabReg.put ("CODTAB", _annop); - - TRectype recc (TabReg.curr()); - - TabReg.read(_isgteq); - - for (; !TabReg.eof(); TabReg.next()) - { - if (TabReg.curr() != recc) break; - - TRecnotype nr = TabReg.recno(); - int tiporeg = TabReg.get_int("I0"); - TString cod_reg = TabReg.get("CODTAB"); - TDate data_vid = TabReg.get_date("D0"); - data_vid.addyear(); - cod_reg = cod_reg.mid(4,3); - if ( (tiporeg == 1)||(tiporeg == 2)||(tiporeg==3) ) - { - ok = TRUE; - nuovo = TabReg.curr(); - TString16 cod; - cod << annoiva << cod_reg; - nuovo.put("CODTAB", cod); - nuovo.put("I1", 0L); - nuovo.put("I2", 0L); - nuovo.put("I4", 0L); - nuovo.put("I5", 0L); - nuovo.put("I6", 0L); - nuovo.put("S1", ""); - nuovo.put("D0", data_vid); - nuovo.put("D2", data); - nuovo.put("D3", data); - nuovo.put("R1", real(0.0)); - nuovo.put("R2", real(0.0)); - - TabReg.write(nuovo); - TabReg.readat(nr); - } - } - /* - if (!ok) - { - error_box("Non esistono i registri iva relativi all'anno iva precedente"); - return FALSE; - } - */ - - //viene aggiornato l'anno iva sui parametri ditta - TConfig conf(CONFIG_DITTA); - conf.set("AnLiIv", annoiva); - - //sull'anagrafica ditte viene aggiornata la frequenza versamento - nditte.zero(); - nditte.put("CODDITTA", _ditta); - if (nditte.read() == NOERR) - { - nditte.put(NDT_FREQVIVA, _frequenza); - nditte.rewrite(); - } - - message_box("Apertura nuovo esercizio IVA completata"); - return TRUE; -} - int cg4500 (int argc, char* argv[]) { - CG4500_application main_app; - main_app.run(argc, argv, "Apertura nuovo esercizio"); + if (argc > 2) + { + if (*argv[2]=='I') + { + TAp_iva a; + a.run(argc, argv, "Apertura nuovo esercizio IVA"); + } + } + else + { + TAp_eser a; + a.run(argc, argv, "Apertura nuovo esercizio"); + } return TRUE; }