corretto errore MI2200

git-svn-id: svn://10.65.10.50/trunk@3874 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 1996-11-07 13:51:20 +00:00
parent 8b0f0f7c55
commit 3101742c71

View File

@ -1,263 +1,263 @@
//Apertura nuovo esercizio IVA
#include "nditte.h"
#include "cg4501.h"
#include "cg4500b.h"
bool TAp_iva::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 TAp_iva::create()
{
_nditte = new TLocalisamfile(LF_NDITTE);
_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;
}
bool TAp_iva::destroy()
{
delete _nditte;
delete _reg;
delete _lia;
delete _lbu;
return TRUE;
}
bool TAp_iva::apertura_iva()
{
TTable TabReg ("REG");
TTable TabLia ("%LIA");
TTable TabLbu ("%LBU");
TLocalisamfile nditte (LF_NDITTE);
TString annoiva (4);
TDate data;
bool ok = 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;
}
bool TAp_iva::menu(MENU_TAG m)
{
TTable TabLia ("%LIA");
TLocalisamfile nditte (LF_NDITTE);
TMask msk ("cg4500b");
TConfig conf(CONFIG_DITTA);
_annop = conf.get("AnLiIv");
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)
msk.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)
msk.set(F_FREQUENZA, TabLia.get("S7"));
else
{
nditte.zero();
nditte.put("CODDITTA", get_firm());
if (nditte.read() == NOERR)
msk.set(F_FREQUENZA, nditte.get(NDT_FREQVIVA));
}
}
msk.set(F_ANNOIVA, aivap+1);
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();
}
return FALSE;
//Apertura nuovo esercizio IVA
#include "nditte.h"
#include "cg4501.h"
#include "cg4500b.h"
bool TAp_iva::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 TAp_iva::create()
{
_nditte = new TLocalisamfile(LF_NDITTE);
_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;
}
bool TAp_iva::destroy()
{
delete _nditte;
delete _reg;
delete _lia;
delete _lbu;
return TRUE;
}
bool TAp_iva::apertura_iva()
{
TTable TabReg ("REG");
TTable TabLia ("%LIA");
TTable TabLbu ("%LBU");
TLocalisamfile nditte (LF_NDITTE);
TString annoiva (4);
TDate data;
bool ok = 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);
newrec.zero("R0");
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;
}
bool TAp_iva::menu(MENU_TAG m)
{
TTable TabLia ("%LIA");
TLocalisamfile nditte (LF_NDITTE);
TMask msk ("cg4500b");
TConfig conf(CONFIG_DITTA);
_annop = conf.get("AnLiIv");
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)
msk.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)
msk.set(F_FREQUENZA, TabLia.get("S7"));
else
{
nditte.zero();
nditte.put("CODDITTA", get_firm());
if (nditte.read() == NOERR)
msk.set(F_FREQUENZA, nditte.get(NDT_FREQVIVA));
}
}
msk.set(F_ANNOIVA, aivap+1);
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();
}
return FALSE;
}