Separazione menu aperture
git-svn-id: svn://10.65.10.50/trunk@1451 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5b0c008301
commit
6486a43a0d
22
cg/cg4.url
22
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"
|
||||
|
||||
|
403
cg/cg4500.cpp
403
cg/cg4500.cpp
@ -1,5 +1,4 @@
|
||||
// Apertura nuovo esercizio/nuovo esercizio IVA
|
||||
|
||||
// Apertura nuovo esercizio
|
||||
#include <relation.h>
|
||||
#include <tabutil.h>
|
||||
#include <printapp.h>
|
||||
@ -7,7 +6,6 @@
|
||||
#include <utility.h>
|
||||
#include <config.h>
|
||||
#include <urldefid.h>
|
||||
|
||||
#include <mov.h>
|
||||
#include <rmov.h>
|
||||
#include <rmoviva.h>
|
||||
@ -15,21 +13,11 @@
|
||||
#include <causali.h>
|
||||
#include <nditte.h>
|
||||
|
||||
#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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user