Patch level : XX.648

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Riportata la versione 01.05 patch 648


git-svn-id: svn://10.65.10.50/trunk@8633 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1999-10-22 10:00:18 +00:00
parent 3dbdc66142
commit 3a770ee656
355 changed files with 15280 additions and 5802 deletions

View File

@ -4,6 +4,7 @@
#include <automask.h>
#include <colors.h>
#include <config.h>
#include <controls.h>
#include <dongle.h>
#include <execp.h>
#include <isam.h>
@ -77,9 +78,13 @@ TPicture_mask::TPicture_mask(const char* name, int dx, int dy,
void TPicture_mask::set_image(TImage* image)
{
if (image && image->ok())
{
_image = image;
_image->set_palette(win());
{
if (image != _image)
{
_image = image;
_image->set_palette(win());
force_update();
}
}
else
_image = NULL;
@ -162,13 +167,14 @@ bool TPicture_mask::on_key(KEY k)
// Color Mask
///////////////////////////////////////////////////////////
class TColor_mask : public TMask
class TColor_mask : public TAutomask
{
TAssoc_array _color;
protected: // TMask
virtual void update();
virtual bool stop_run(KEY key) { return TWindow::stop_run(key); }
virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly);
// @cmember Converte le coordinate logiche (caratteri) in coordinate fisiche (pixel)
virtual PNT log2dev(long x, long y) const;
@ -191,25 +197,78 @@ public:
virtual ~TColor_mask() { }
};
bool TColor_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
{
const short id = f.dlg();
bool ok = TRUE;
switch (id)
{
case DLG_USER:
if (e == fe_button)
{
for (int i = fields()-1; i >= 0; i--)
{
TMask_field& mf = fld(i);
const short bid = mf.dlg();
if (bid >= 101 && bid <= 112 && mf.is_kind_of(CLASS_BUTTON_FIELD))
{
const char* name = cid2name(bid);
const COLOR color = cid2color(bid);
set_color_entry(name, color);
}
}
update();
}
break;
case 114:
if (e == fe_button)
{
xvt_dm_post_font_sel(TASK_WIN, xvt_default_font(), NULL, 0);
force_update();
}
break;
default:
if (id >= 101 && id <= 112 && e == fe_button)
{
TColor_mask& m = (TColor_mask&)f.mask();
const char* name = m.cid2name(f.dlg());
COLOR col = m.get_color_entry(name);
col = choose_color(col, m.win());
ok = col != COLOR_INVALID;
if (ok)
{
m.set_color_entry(name, col);
XVT_PALETTE wp = xvt_vobj_get_palet(m.win());
if (wp != NULL)
{
XVT_PALETTE up = xvt_palet_create(XVT_PALETTE_USER, 0);
if (up != NULL)
{
const int MAXPAL = 256;
COLOR color[MAXPAL];
const int n = xvt_palet_get_colors(wp, color, MAXPAL);
if (n < MAXPAL) color[n] = col;
xvt_palet_set_tolerance(up, xvt_palet_get_tolerance(wp));
xvt_palet_add_colors(up, color, n+1);
xvt_vobj_set_palet(m.win(), up);
xvt_palet_destroy(wp);
}
}
m.stop_run(K_CTRL + 'R');
}
}
break;
}
return ok;
}
TColor_mask::TColor_mask()
: TMask("ba0200a")
: TAutomask("ba0200a")
{
TConfig color(CONFIG_USER, "Colors");
_color = color.list_variables();
set(113, color.get_bool("Campi3D") ? "X" : "");
for (int f = fields()-1; f >= 0; f--)
{
TMask_field& mf = fld(f);
if (mf.is_kind_of(CLASS_BUTTON_FIELD))
{
if (mf.dlg() > DLG_USER)
mf.set_handler(color_handler);
else
if (mf.dlg() == DLG_USER)
mf.set_handler(azzera_handler);
}
}
}
PNT TColor_mask::log2dev(long x, long y) const
@ -344,63 +403,6 @@ COLOR TColor_mask::cid2color(short cid) const
return color[i];
}
bool TColor_mask::color_handler(TMask_field& f, KEY k)
{
bool ok = TRUE;
if (k == K_SPACE)
{
TColor_mask& m = (TColor_mask&)f.mask();
const char* name = m.cid2name(f.dlg());
COLOR col = m.get_color_entry(name);
col = choose_color(col, m.win());
ok = col != COLOR_INVALID;
if (ok)
{
m.set_color_entry(name, col);
XVT_PALETTE wp = xvt_vobj_get_palet(m.win());
if (wp != NULL)
{
XVT_PALETTE up = xvt_palet_create(XVT_PALETTE_USER, 0);
if (up != NULL)
{
const int MAXPAL = 256;
COLOR color[MAXPAL];
const int n = xvt_palet_get_colors(wp, color, MAXPAL);
if (n < MAXPAL) color[n] = col;
xvt_palet_set_tolerance(up, xvt_palet_get_tolerance(wp));
xvt_palet_add_colors(up, color, n+1);
xvt_vobj_set_palet(m.win(), up);
xvt_palet_destroy(wp);
}
}
m.stop_run(K_CTRL + 'R');
}
}
return ok;
}
bool TColor_mask::azzera_handler(TMask_field& f, KEY k)
{
if (k == K_SPACE)
{
TColor_mask& cm = (TColor_mask&)f.mask();
for (int i = cm.fields()-1; i >= 0; i--)
{
TMask_field& mf = cm.fld(i);
if (mf.dlg() > DLG_USER && mf.is_kind_of(CLASS_BUTTON_FIELD))
{
const char* name = cm.cid2name(mf.dlg());
const COLOR color = cm.cid2color(mf.dlg());
cm.set_color_entry(name, color);
}
}
cm.update();
}
return TRUE;
}
///////////////////////////////////////////////////////////
// Menu mamnagement
///////////////////////////////////////////////////////////
@ -1335,7 +1337,9 @@ bool TMenu_application::check_user()
users.put("PASSWORD", encode(pwd));
users.write();
err = users.read(_isequal);
}
}
else
pwd = "";
}
ok = utente.not_empty() && pwd.not_empty() && pwd == m.get(F_PASSWORD);
@ -1897,7 +1901,11 @@ const TSubmenu& TMenu_tree::curr_submenu() const
const TMenuitem& TMenu_tree::curr_item() const
{
const TSubmenu& sm = curr_submenu();
CHECKD(_menuitem >= 0 && _menuitem < sm.items(), "Invalid submenu item ", _menuitem);
if (_menuitem < 0 || _menuitem >= sm.items())
{
NFCHECK("Invalid submenu item %d in %s", _menuitem, (const char*)sm.name());
return sm.item(0);
}
return sm.item(_menuitem);
}
@ -2139,7 +2147,6 @@ bool TMenu_application::tree_handler(TMask_field& f, KEY k)
TImage& image = menu.image(menu.current().picture());
TPicture_mask& pm = (TPicture_mask&)f.mask();
pm.set_image(&image);
pm.force_update();
}
}

View File

@ -11,8 +11,11 @@ MENU MENU_BAR(0)
SUBMENU M_HELP "~Help"
MENU M_FONT
/*
ITEM M_FONT_SELECT "~Font"
ITEM MENU_ITEM(2) "~Colori"
*/
ITEM MENU_ITEM(2) "~Font e Colori"
ITEM MENU_ITEM(3) "~Editors"
ITEM MENU_ITEM(4) "~Studio"

View File

@ -613,7 +613,6 @@ void TManutenzione_app::edit_riga (long riga_sel, TToken_string& riga)
_browse->dir()->set(dep.SysName, dep.EOD, dep.Flags,
dep.Des, dep.FCalc);
_browse->dir()->put(logicnum, _nordir, _sysdirop);
if (eox != oldeox)
{
TSystemisamfile f(logicnum);
@ -796,7 +795,7 @@ void TManutenzione_app::update_dir()
}
if (!fexist(fs))
if (!fs.exist())
{
if (d.eox() > 0L)
{
@ -820,6 +819,15 @@ void TManutenzione_app::update_dir()
{
TSystemisamfile b(i);
int err = b.is_valid();
if (err == _istrcerr && d.eod() == 0 &&
yesno_box("Il tracciato record del file %d e' incoerente:\n"
"Si desidera eliminare il file vuoto %s?", i, d.filename()))
{
TFilename n(d.filename()); remove(n);
n.ext("cdx"); remove(n);
n.ext("fpt"); remove(n);
err = NOERR;
}
if (err != NOERR && flags < 10000L)
{
KEY k = yesnocancel_box("Il file %d non puo' essere aperto: errore %d\n"
@ -837,7 +845,7 @@ void TManutenzione_app::update_dir()
}
else
{
if (flags < 10000L && to_create )
if (flags < 10000L && to_create)
{
remove(d.filename());
TToken_string idx_names;
@ -1042,6 +1050,15 @@ void TManutenzione_app::convert_dir()
TSystemisamfile b(i);
const int module = abs((int)ds.flags());
int err = b.is_valid();
if (err == _istrcerr && d.eod() == 0 &&
yesno_box("Il tracciato record del file %d e' incoerente:\n"
"Si desidera eliminare il file vuoto %s?", i, d.filename()))
{
TFilename n(d.filename()); remove(n);
n.ext("cdx"); remove(n);
n.ext("fpt"); remove(n);
err = NOERR;
}
if (err == -60 || err == -64) err=NOERR; // verif.
d.get(i, _nolock, _nordir, _sysdirop);
if (i > 2 && err != NOERR && ((is_com && d.is_com()) || (!is_com && d.is_firm())))

View File

@ -614,6 +614,7 @@ bool TSet_user_passwd::user_create()
_im = new TInformazione_moduli;
_msk = new TMask("ba1400a") ;
_msk->first_focus(F_USER);
_msk->set_handler(F_PASSWORD, password_handler);
sheet_field().enable(superuser);

View File

@ -6,6 +6,18 @@ ENDPAGE
PAGE "Gestione utenti" -1 -1 35 7
LIST F_GROUP 1 8
BEGIN
PROMPT 1 1 ""
ITEM " |Utente"
MESSAGE SHOW,3@
ITEM "X|Gruppo"
MESSAGE HIDE,3@
FIELD ISGROUP
GROUP G_SUPERUSER
KEY 1
END
STRING F_USER 8
BEGIN
PROMPT 15 1 ""
@ -21,19 +33,6 @@ BEGIN
FIELD USERNAME
END
LIST F_GROUP 1 8
BEGIN
PROMPT 1 1 ""
ITEM " |Utente"
MESSAGE SHOW,3@
ITEM "X|Gruppo"
MESSAGE HIDE,3@
FIELD ISGROUP
GROUP G_SUPERUSER
KEY 1
END
STRING F_GROUPNAME 8
BEGIN
PROMPT 32 1 "Gruppo di appartenenza "

View File

@ -25,14 +25,15 @@ LIST F_CLASS 10
BEGIN
PROMPT 1 1 "Tipo "
FLAGS "G"
ITEM "STRINGA|Testo" MESSAGE HIDE,F_DECIMALS|SHOW,F_HEIGHT|SHOW,F_ITEMS|HIDE,8@
ITEM "NUMERO|Numero" MESSAGE SHOW,F_DECIMALS|HIDE,F_HEIGHT|SHOW,F_ITEMS|HIDE,8@
ITEM "DATA|Data" MESSAGE HIDE,F_DECIMALS|HIDE,F_HEIGHT|SHOW,F_ITEMS|SHOW,8@
ITEM "LISTA|Lista" MESSAGE HIDE,F_DECIMALS|HIDE,F_HEIGHT|SHOW,F_ITEMS|HIDE,8@
ITEM "GRUPPO|Gruppo" MESSAGE HIDE,F_DECIMALS|HIDE,F_HEIGHT|HIDE,F_ITEMS|HIDE,8@
ITEM "LINEA|Linea" MESSAGE HIDE,F_DECIMALS|SHOW,F_HEIGHT|HIDE,F_ITEMS|HIDE,8@
ITEM "BOX|Box" MESSAGE HIDE,F_DECIMALS|SHOW,F_HEIGHT|HIDE,F_ITEMS|HIDE,8@
ITEM "FIGURA|Figura" MESSAGE HIDE,F_DECIMALS|SHOW,F_HEIGHT|HIDE,F_ITEMS|HIDE,8@
ITEM "STRINGA|Testo" MESSAGE HIDE,F_DECIMALS|SHOW,F_HEIGHT|SHOW,F_ITEMS|HIDE,8@
ITEM "NUMERO|Numero" MESSAGE SHOW,F_DECIMALS|HIDE,F_HEIGHT|SHOW,F_ITEMS|HIDE,8@
ITEM "VALUTA|Importo" MESSAGE HIDE,F_DECIMALS|HIDE,F_HEIGHT|SHOW,F_ITEMS|HIDE,8@
ITEM "DATA|Data" MESSAGE HIDE,F_DECIMALS|HIDE,F_HEIGHT|SHOW,F_ITEMS|SHOW,8@
ITEM "LISTA|Lista" MESSAGE HIDE,F_DECIMALS|HIDE,F_HEIGHT|SHOW,F_ITEMS|HIDE,8@
ITEM "GRUPPO|Gruppo" MESSAGE HIDE,F_DECIMALS|HIDE,F_HEIGHT|HIDE,F_ITEMS|HIDE,8@
ITEM "LINEA|Linea" MESSAGE HIDE,F_DECIMALS|SHOW,F_HEIGHT|HIDE,F_ITEMS|HIDE,8@
ITEM "BOX|Box" MESSAGE HIDE,F_DECIMALS|SHOW,F_HEIGHT|HIDE,F_ITEMS|HIDE,8@
ITEM "FIGURA|Figura" MESSAGE HIDE,F_DECIMALS|SHOW,F_HEIGHT|HIDE,F_ITEMS|HIDE,8@
END
NUMBER F_ID 4

View File

@ -1,5 +1,7 @@
#include <config.h>
#include <currency.h>
#include <printer.h>
#include <prefix.h>
#include <tabapp.h>
#include "../cg/cglib03.h"
@ -256,6 +258,16 @@ char TGeneric_table_app::frequenza_versamenti(long firm, int year) const
return freq;
}
HIDDEN bool ditta_handler(TMask_field& f, KEY k)
{
if (f.to_check(k))
{
TFirm firm(atol(f.get()));
f.mask().set(F_CODVAL, firm.codice_valuta());
}
return TRUE;
}
HIDDEN bool coddel_handler(TMask_field& f, KEY k)
{
TMask& m = f.mask();
@ -343,6 +355,15 @@ HIDDEN bool intdel_handler(TMask_field& f, KEY k)
HIDDEN bool impdel_handler(TMask_field& f, KEY k)
{
const TMask& m = f.mask();
if (f.to_check(k))
{
real r(f.get());
TCurrency cur(r, f.mask().get(F_CODVAL));
const int ndec = cur.decimals();
r.round(ndec == 0 ? -3 : ndec);
f.set(r.string());
}
if (!m.query_mode() && k == K_ENTER)
{
@ -494,6 +515,7 @@ bool TGeneric_table_app::user_create()
if (name == TAB_DELEGHE)
{
mask.set_handler(F_DITTA, ditta_handler);
mask.set_handler(F_MESEDEL, mese_handler);
mask.set_handler(F_IMPORTO, impdel_handler);
mask.set_handler(F_INTERESSI, intdel_handler);

View File

@ -163,7 +163,18 @@ void Libribollati_print::set_page(int , int counter)
}
bool Libribollati_print::set_print(int)
{
{
_msk->reset(F_TIPOREG);
_msk->reset(F_TIPOREGCOM);
_msk->reset(F_ANNO);
_msk->reset(F_CODICE);
_msk->reset(F_ANNOREG);
_msk->reset(F_CODICEREG);
_msk->reset(F_REGISTRO);
_msk->reset(F_NPAGINI);
_msk->reset(F_NPAGFI);
_msk->reset(F_PRIMO);
_msk->reset(F_ANNOSTAMPA);
if (_msk->run() == K_ENTER)
{
TPrinter& pr = printer();

View File

@ -90,28 +90,27 @@ BEGIN
ITEM "6|Imposte + spese"
END
NUMBER F_NUM_RATE 3
NUMBER F_INT_RATE 3
BEGIN
PROMPT 57 5 "Numero rate "
HELP "Numero delle rate"
PROMPT 53 5 "Intervallo rate "
HELP "Giorni di intervallo tra una data e l'altra"
FIELD I3
FLAGS "R"
END
LIST F_RATE_DIFF 1 30
BEGIN
PROMPT 5 6 "Rate "
ITEM "1|Differenziate" MESSAGE "X",909|DISABLE,F_NUM_RATE
ITEM "2|Uguali (obbligate dalla 2a)" MESSAGE "",909|ENABLE,F_NUM_RATE
ITEM "3|Uguali dalla prossima modif." MESSAGE "X",909|DISABLE,F_NUM_RATE
ITEM "4|Uguali finche' possibile" MESSAGE "X",909|DISABLE,F_NUM_RATE
ITEM "1|Differenziate" MESSAGE "X",909|DISABLE,F_NUM_RATE|CLEAR,F_ULT_CLASS
ITEM "2|Uguali (obbligate dalla 2a)" MESSAGE "",909|ENABLE,F_NUM_RATE|ENABLE,F_ULT_CLASS
ITEM "3|Uguali dalla prossima modif." MESSAGE "X",909|DISABLE,F_NUM_RATE|ENABLE,F_ULT_CLASS
ITEM "4|Uguali finche' possibile" MESSAGE "X",909|DISABLE,F_NUM_RATE|ENABLE,F_ULT_CLASS
END
NUMBER F_INT_RATE 3
NUMBER F_NUM_RATE 3
BEGIN
PROMPT 53 6 "Intervallo rate "
HELP "Giorni di intervallo tra una data e l'altra"
FIELD I3
PROMPT 57 6 "Numero rate "
HELP "Numero delle rate"
FLAGS "R"
END

View File

@ -126,7 +126,11 @@ END
STRING FLD_CM1_DUFIIDD1 50
BEGIN
PROMPT 20 6 ""
FLAGS "D"
USE %UID KEY 2
INPUT S0 FLD_CM1_DUFIIDD1
DISPLAY "Denominazione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT FLD_CM1_UFIIDD1
END
NUMBER FLD_CM1_UFIIDD2 3
@ -147,7 +151,10 @@ END
STRING FLD_CM1_DUFIIDD2 50
BEGIN
PROMPT 20 7 ""
FLAGS "D"
COPY USE FLD_CM1_DUFIIDD1
INPUT S0 FLD_CM1_DUFIIDD2
COPY DISPLAY FLD_CM1_DUFIIDD1
COPY OUTPUT FLD_CM1_UFIIDD2
END
NUMBER FLD_CM1_UFIIDD3 3
@ -168,7 +175,10 @@ END
STRING FLD_CM1_DUFIIDD3 50
BEGIN
PROMPT 20 8 ""
FLAGS "D"
COPY USE FLD_CM1_DUFIIDD1
INPUT S0 FLD_CM1_DUFIIDD3
COPY DISPLAY FLD_CM1_DUFIIDD1
COPY OUTPUT FLD_CM1_UFIIDD3
END
GROUPBOX DLG_NULL 75 5
@ -195,7 +205,11 @@ END
STRING FLD_CM1_DUFFIVA1 50
BEGIN
PROMPT 20 11 ""
FLAGS "D"
USE %UIV KEY 2
INPUT S0 FLD_CM1_DUFFIVA1
DISPLAY "Denominazione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT FLD_CM1_UFFIVA1
END
NUMBER FLD_CM1_UFFIVA2 3
@ -216,7 +230,10 @@ END
STRING FLD_CM1_DUFFIVA2 50
BEGIN
PROMPT 20 12 ""
FLAGS "D"
COPY USE FLD_CM1_DUFFIVA1
INPUT S0 FLD_CM1_DUFFIVA2
COPY DISPLAY FLD_CM1_DUFFIVA1
COPY OUTPUT FLD_CM1_UFFIVA2
END
NUMBER FLD_CM1_UFFIVA3 3
@ -237,7 +254,10 @@ END
STRING FLD_CM1_DUFFIVA3 50
BEGIN
PROMPT 20 13 ""
FLAGS "D"
COPY USE FLD_CM1_DUFFIVA1
INPUT S0 FLD_CM1_DUFFIVA3
COPY DISPLAY FLD_CM1_DUFFIVA1
COPY OUTPUT FLD_CM1_UFFIVA3
END
ENDPAGE
@ -302,7 +322,11 @@ END
STRING FLD_CM2_DUFFREG 50
BEGIN
PROMPT 23 5 ""
FLAGS "D"
USE %URE KEY 2
INPUT S0 FLD_CM2_DUFFREG
DISPLAY "Denominazione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT FLD_CM2_UFFREG
END
NUMBER FLD_CM2_UFFCONC 3
@ -324,7 +348,11 @@ END
STRING FLD_CM2_DUFFCONC 50
BEGIN
PROMPT 23 6 ""
FLAGS "D"
USE %UCC KEY 2
INPUT S0 FLD_CM2_DUFFCONC
DISPLAY "Denominazione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT FLD_CM2_UFFCONC
END
NUMBER FLD_CM2_UFFCSERV 3
@ -346,7 +374,11 @@ END
STRING FLD_CM2_DUFFCSERV 50
BEGIN
PROMPT 23 7 ""
FLAGS "D"
USE %UCS KEY 2
INPUT S0 FLD_CM2_DUFFCSERV
DISPLAY "Denominazione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT FLD_CM2_UFFCSERV
END
GROUPBOX DLG_NULL 23 4

View File

@ -210,7 +210,8 @@ bool TDitte_application::user_create() // initvar e arrmask
_msk->set_handler(DLG_FAX, fax_handler);
_msk->set_handler(ba4300_handler);
set_search_field(FLD_GD1_CODDITTA);
/*
if (argc() > 2)
{
get_mask(MODE_QUERY);
@ -219,6 +220,7 @@ bool TDitte_application::user_create() // initvar e arrmask
s << argv(2) << "|" << argv(2);
set_link(*_msk, s);
}
*/
return TRUE;
}

View File

@ -22,7 +22,7 @@ END
BUTTON DLG_REG 10 2
BEGIN
PROMPT -46 -3 "R~egistri"
PROMPT -46 -3 "Re~gistri"
MESSAGE K_F8
END

View File

@ -122,15 +122,16 @@ BEGIN
// ITEM "4|4) Libro Incassi e pagamenti"
// MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,6@|HIDE,7@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,5@|SHOW,F_PRINTER|SHOW,F_CONFIG
// ITEM "5|5) Libro Giornale"
// MESSAGE HIDE,2@|HIDE,4@|HIDE,5@|HIDE,7@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,6@|SHOW,F_PRINTER|SHOW,F_CONFIG
// MESSAGE HIDE,2@|HIDE,4@|HIDE,5@|HIDE,7@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,6@|SHOW,F_PRINTER|SHOW,F_CONFIG|"",F_ATTIVITA
// ITEM "6|6) Libri Sociali"
// MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,7@|SHOW,F_PRINTER|SHOW,F_CONFIG
// MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,8@|HIDE,9@|HIDE,10@|SHOW,7@|SHOW,F_PRINTER|SHOW,F_CONFIG|"",F_ATTIVITA
ITEM "7|7) Libro Cespiti"
MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,9@|HIDE,10@|SHOW,8@|HIDE,F_PRINTER|SHOW,F_CODLBU|HIDE,F_CONFIG
MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,9@|HIDE,10@|SHOW,8@|HIDE,F_PRINTER|SHOW,F_CODLBU|HIDE,F_CONFIG|"",F_ATTIVITA
ITEM "8|8) Libro Inventari"
MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,8@|HIDE,10@|SHOW,9@|SHOW,F_PRINTER|SHOW,F_CONFIG
// ITEM "9|9) Libro delle Procedure"
// MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,8@|HIDE,9@|SHOW,10@|SHOW,F_PRINTER|SHOW,F_CONFIG
MESSAGE HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,6@|HIDE,7@|HIDE,8@|HIDE,10@|SHOW,9@|SHOW,F_PRINTER|SHOW,F_CONFIG|"",F_ATTIVITA
// ITEM "9|9) Giornale di magazzino"
// MESSAGE HIDE,GRP_VENDITE@|HIDE,GRP_ACQUISTI@|HIDE,GRP_RIEPIVA@|HIDE,GRP_INCASSI@|HIDE,GRP_GIORNALE@|HIDE,GRP_LSOCIALI@|HIDE,GRP_CESPITI@|HIDE,GRP_INVENTARI@|SHOW,GRP_GIORNMAG@
// MESSAGE "",GRP_NOGIORNMAG@|"",F_ATTIVITA
END
STRING F_CONSPRESSO 50

View File

@ -222,31 +222,31 @@ BEGIN
PROMPT 3 13 "Stampa"
END
BUTTON BUT_BA6_ELENCO 9 2
BUTTON BUT_BA6_ELENCO 10 2
BEGIN
PROMPT 4 14 "Elenco"
PROMPT 4 14 "~Elenco"
MESSAGE EXIT,BUT_BA6_ELENCO
END
BUTTON BUT_BA6_SCHEDE 9 2
BUTTON BUT_BA6_SCHEDE 10 2
BEGIN
PROMPT 16 14 "Schede"
PROMPT 16 14 "S~chede"
MESSAGE EXIT,BUT_BA6_SCHEDE
END
BUTTON BUT_BA6_RUBRICHE 9 2
BUTTON BUT_BA6_RUBRICHE 10 2
BEGIN
PROMPT 28 14 "Rubriche"
PROMPT 28 14 "~Rubriche"
MESSAGE EXIT,BUT_BA6_RUBRICHE
END
BUTTON BUT_BA6_ETICHETTE 9 2
BUTTON BUT_BA6_ETICHETTE 10 2
BEGIN
PROMPT 40 14 "Etichette"
PROMPT 40 14 "E~tichette"
MESSAGE EXIT,BUT_BA6_ETICHETTE
END
BUTTON DLG_QUIT 9 2
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT 56 14 ""
END

View File

@ -96,7 +96,7 @@ END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 "Conferma"
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 10 2

View File

@ -35,15 +35,12 @@ STRING F_STATOINI 3
BEGIN
PROMPT 2 6 "Da codice "
HELP "Codice del comune da cui iniziare la stampa. Vuoto = inizio archivio"
USE LF_COMUNI KEY 1
INPUT STATO F_STATOINI
INPUT COM F_CODICEINI
DISPLAY "Stato" STATO
DISPLAY "Comune" COM
DISPLAY "Denominazione@50" DENCOM
OUTPUT F_STATOINI STATO
OUTPUT F_CODICEINI COM
CHECKTYPE NORMAL
USE %STA
INPUT CODTAB F_STATOINI
DISPLAY "Stato" CODTAB
DISPLAY "Denominazione@50" S0
OUTPUT F_STATOINI CODTAB
FLAG "Z"
END
STRING F_CODICEINI 4
@ -51,13 +48,14 @@ BEGIN
PROMPT 20 6 ""
FLAGS "U"
HELP "Codice del comune da cui iniziare la stampa. Vuoto = inizio archivio"
COPY USE F_STATOINI
USE LF_COMUNI
INPUT STATO F_STATOINI
INPUT COM F_CODICEINI
COPY DISPLAY F_STATOINI
DISPLAY "Stato" STATO
DISPLAY "Codice" COM
DISPLAY "Denominazione@50" DENCOM
OUTPUT F_STATOINI STATO
OUTPUT F_CODICEINI COM
CHECKTYPE NORMAL
END
STRING F_STATOFINE 3
@ -65,12 +63,10 @@ BEGIN
PROMPT 37 6 "A codice "
HELP "Codice del comune a cui terminare la stampa. Vuoto = fine archivio"
COPY USE F_STATOINI
INPUT STATO F_STATOFINE
INPUT COM F_CODICEFINE
INPUT CODTAB F_STATOFINE
COPY DISPLAY F_STATOINI
OUTPUT F_STATOFINE STATO
OUTPUT F_CODICEFINE COM
CHECKTYPE NORMAL
OUTPUT F_STATOFINE CODTAB
FLAG "Z"
END
STRING F_CODICEFINE 4
@ -78,13 +74,12 @@ BEGIN
PROMPT 54 6 ""
HELP "Codice del comune a cui terminare la stampa. Vuoto = fine archivio"
FLAGS "U"
COPY USE F_STATOINI
COPY USE F_CODICEINI
INPUT STATO F_STATOFINE
INPUT COM F_CODICEFINE
COPY DISPLAY F_STATOINI
COPY DISPLAY F_CODICEINI
OUTPUT F_STATOFINE STATO
OUTPUT F_CODICEFINE COM
CHECKTYPE NORMAL
END
GROUPBOX F_NOME 63 4

View File

@ -503,7 +503,6 @@ void TTest_application::fill_trees(TMask& msk)
tf.set_handler(tree_handler);
}
}
}
void TTest_application::main_loop()
{
@ -662,6 +661,9 @@ void TBenchmark_application::test_cursor_scan()
start_test("Scansione cursore COMUNI");
const TRecnotype tot = cur.items();
cur.freeze();
cur = 0L;
for (TRecnotype c = 0; c < tot; c++)
{

View File

@ -534,6 +534,13 @@ void TInstallmodule_app::run(int argc, char* argv[])
}
void TInstallmodule_app::set_tab_app(const char * appname)
{
TConfig ditta(CONFIG_DITTA);
ditta.set_paragraph(module_code());
ditta.set("TabApp",appname);
}
int main(int argc,char** argv)
{
TApplication::check_parameters(argc, argv);
@ -553,6 +560,10 @@ int main(int argc,char** argv)
r=bainst32(argc, argv);// pre/post installazione magazzino:
else if (mod == "sv")
r=bainst38(argc, argv);// pre/post installazione statistiche:
else if (mod == "db")
r=bainst35(argc, argv);// pre/post installazione DI.BA.
else if (mod == "mr")
r=bainst39(argc, argv);// pre/post installazione MRP
else
r=bainst00(argc, argv);// pre/post installazione base
exit(r);

View File

@ -8,8 +8,9 @@ int bainst07(int argc, char** argv);
int bainst17(int argc, char** argv);
int bainst31(int argc, char** argv);
int bainst32(int argc, char** argv);
int bainst35(int argc, char** argv);
int bainst38(int argc, char** argv);
int bainst39(int argc, char** argv);
// classe provvisoria per i system file temporanei, ovvero file temporanei con
// caricamento/scaricamento
@ -47,6 +48,7 @@ protected:
TString _modcode,_modname;
protected:
void set_tab_app(const char * appname);
bool test_database() {return _test_database;}
const char * module_name() const {return _modname;}
const char * module_code() const {return _modcode;}

View File

@ -13,7 +13,6 @@ private:
protected:
virtual bool modal() const {return FALSE;}
virtual int module_number() const {return 0;}
virtual bool install_firm() {return TRUE;} // no firm installation
virtual bool install_com() {return TRUE;} // no com installation

View File

@ -12,12 +12,25 @@ class TInstall_MG : public TInstallmodule_app
TMask * _m;
protected:
virtual int module_number() const {return 32;}
virtual bool install_firm() {return TRUE;} // no firm installation
virtual bool post_installer();
public:
virtual ~TInstall_MG () {}
};
bool TInstall_MG::post_installer()
{
set_tab_app("mg0 -0");
return TRUE;
}
bool TInstall_MG::load_default_data() const
{
TTable cau("%CAU");
const bool empty = cau.first() != NOERR;
return empty;
}
int bainst32(int argc, char** argv)
{
TInstall_MG app;

27
ba/bainst35.cpp Executable file
View File

@ -0,0 +1,27 @@
#include <config.h>
#include "bainst.h"
class TInstall_DB : public TInstallmodule_app
{
protected:
virtual bool modal() const {return FALSE;}
virtual int module_number() const {return 35;}
virtual bool post_installer();
public:
virtual ~TInstall_DB () {}
};
bool TInstall_DB::post_installer()
{
set_tab_app("db0 -0");
return TRUE;
}
int bainst35(int argc, char** argv)
{
TInstall_DB app;
app.run(argc, argv);
return 0;
}

27
ba/bainst39.cpp Executable file
View File

@ -0,0 +1,27 @@
#include <config.h>
#include "bainst.h"
class TInstall_MR : public TInstallmodule_app
{
protected:
virtual bool modal() const {return FALSE;}
virtual int module_number() const {return 39;}
virtual bool post_installer();
public:
virtual ~TInstall_MR () {}
};
bool TInstall_MR::post_installer()
{
set_tab_app("mr0 -0");
return TRUE;
}
int bainst39(int argc, char** argv)
{
TInstall_MR app;
app.run(argc, argv);
return 0;
}

View File

@ -42,7 +42,6 @@ Item_08 = "Cariche sociali", "ba3 -0 %crs", ""
Item_09 = "Vecchi cod.Attivita'", "ba3 -0 %ois", ""
Item_10 = "Stati esteri", "ba3 -0 %sta", ""
Item_11 = "Gestione profili deleghe e distinte", "ba2 -0", ""
Item_12 = "Nomenclatura combinata", "ba3 -0 %noc", ""
[PRASSI_003]
Caption = "Stampa tabelle"

View File

@ -6,7 +6,7 @@ STRING F_INIZIO1 3
BEGIN
PROMPT 2 1 "Da valuta "
HELP "Inserire la valuta iniziale "
FIELD LF_TABCOM->CODTAB[1,3]
FIELD CODTAB[1,3]
USE CAM
JOIN %VAL ALIAS 200 INTO CODTAB=CODTAB[1,3]
INPUT CODTAB[1,3] F_INIZIO1
@ -16,6 +16,7 @@ BEGIN
DISPLAY "Descrizione@50" -200->S0
OUTPUT F_INIZIO1 CODTAB[1,3]
OUTPUT F_INIZIO2 CODTAB[4,14]
FLAGS "UZ"
GROUP 1
END
@ -23,7 +24,7 @@ DATE F_INIZIO2
BEGIN
PROMPT 28 1 "Da data "
HELP "Inserire la data iniziale"
FIELD LF_TABCOM->CODTAB[4,11]
FIELD CODTAB[4,11]
COPY ALL F_INIZIO1
FLAGS "R"
GROUP 1
@ -33,7 +34,7 @@ STRING F_FINE1 3
BEGIN
PROMPT 2 3 "A valuta "
HELP "Inserire la valuta finale "
FIELD LF_TABCOM->CODTAB[1,3]
FIELD CODTAB[1,3]
COPY USE F_INIZIO1
INPUT CODTAB[1,3] F_FINE1
INPUT CODTAB[4,11] F_FINE2
@ -42,6 +43,7 @@ BEGIN
DISPLAY "Descrizione@50" -200->S0
OUTPUT F_FINE1 CODTAB[1,3]
OUTPUT F_FINE2 CODTAB[4,11]
FLAGS "UZ"
GROUP 2
END
@ -50,7 +52,7 @@ DATE F_FINE2
BEGIN
PROMPT 28 3 "A data "
HELP "Inserire la data finale "
FIELD LF_TABCOM->CODTAB[4,11]
FIELD CODTAB[4,11]
FLAGS "R"
COPY ALL F_FINE1
GROUP 2

View File

@ -20,7 +20,8 @@ BEGIN
OUTPUT F_CODICEABI CODTAB[1,5]
OUTPUT H_DENOMABI S0
MESSAGE COPY,H_CODICEABI
CHECKTYPE REQUIRED
WARNING "Istituto assente"
CHECKTYPE FORCED
END
NUMBER F_CODICECAB 5

View File

@ -1,5 +1,5 @@
[Relations]
%VAL;CODTAB=CODTAB[1,3];1;0;200
%VAL;CODTAB==(TRIM(CODTAB[1,3]));1;0;200
[Headers]
132

View File

@ -8,20 +8,18 @@ ENDPAGE
PAGE "Ulteriore classificazione" -1 -1 78 13
GROUPBOX DLG_NULL 75 7
GROUPBOX DLG_NULL 75 9
BEGIN
PROMPT 1 0 "Ulteriore classificazione"
FLAGS "R"
END
NUMBER F_CODICERATA 1
LISTBOX F_CODICERATA 1 35
BEGIN
PROMPT 2 2 "Codice "
PROMPT 2 2 "Codice "
FIELD CODTAB[1,1]
SHEET "Codice|Descrizione@50"
INPUT F_CODICERATA
OUTPUT F_CODICERATA
OUTPUT F_DESCR
// SHEET "Codice|Descrizione@50"
// INPUT F_CODICERATA
ITEM "1|Rimessa diretta o contanti"
ITEM "2|Tratta"
ITEM "3|Ricevuta Bancaria"
@ -32,12 +30,13 @@ BEGIN
ITEM "8|Rapporti Interbancari Diretti"
ITEM "9|Bonifici"
KEY 1
// CHECKTYPE REQUIRED
// OUTPUT F_CODICERATA
// OUTPUT F_DESRATA
END
STRING F_CODICEALFA 1
BEGIN
PROMPT 20 2 "Classificazione "
PROMPT 2 4 "Classificazione "
FLAGS "U"
FIELD CODTAB[2,2]
USE %CLR
@ -55,7 +54,7 @@ END
STRING F_DESCR 50
BEGIN
PROMPT 2 4 "Descrizione "
PROMPT 2 6 "Descrizione "
FIELD S0
USE %CLR KEY 2
INPUT S0 F_DESCR

View File

@ -12,6 +12,7 @@
#define F_STAMPATO 142
#define F_DITTA 143
#define F_RSOC 144
#define F_CODVAL 145

View File

@ -25,6 +25,12 @@ BEGIN
WARNING "Ditta assente"
END
STRING F_CODVAL 3
BEGIN
PROMPT 0 0 ""
FLAGS "HD"
END
STRING F_RSOC 50
BEGIN
PROMPT 4 2 "Ragione sociale "
@ -151,23 +157,22 @@ BEGIN
WARNING "Concessione assente"
END
NUMBER F_IMPORTO 15
CURRENCY F_IMPORTO 15
BEGIN
PROMPT 4 10 "Importo versato "
FIELD R0
FLAGS "R"
PICTURE "."
DRIVENBY F_CODVAL
HELP "Importo versato"
NUM_CALC {ROUND(#THIS_FIELD, -3)}
END
NUMBER F_INTERESSI 15
CURRENCY F_INTERESSI 15
BEGIN
PROMPT 4 11 "Di cui interessi "
FIELD R1
FLAGS "R"
PICTURE "."
HELP "Interessi da pagare"
DRIVENBY F_CODVAL
END
BOOLEAN F_STAMPATO

View File

@ -19,3 +19,6 @@
#define DLG_DEL 120
#define FLD_SOSPESO_B2 118
#define CHK_TABIVA_B4 119
#define FLD_TABIVA_S10 120
#define FLD_TABIVA_S11 121

View File

@ -1,41 +1,46 @@
[Headers]
132
Tabella codici IVA
1|@64g%s|Tipo
1|@69g%s|C.IVA
1|@76g%s|%IVA
1|@83g%s|Riga IVA11
1|@94g%s|Rimb.
1|@108g%s|Reg.
1|@115g%s|Ag.
1|@121g%s|Esc.
1|@54g%s|Tipo
1|@59g%s|C.IVA
1|@66g%s|%IVA
1|@73g%s|Riga IVA11
1|@84g%s|Riga prosp.
1|@96g%s|Rimb.
1|@110g%s|Reg.
1|@117g%s|Ag.
1|@123g%s|Esc.
2|%s|Cod.
2|@6g%s|Descrizione
2|@57g%s|Aliq.
2|@64g%s|Cod.
2|@69g%s|Vent.
2|@75g%s|Teorica
2|@83g%s|Vend.
2|@89g%s|Acq.
2|@94g%s|Infr.
2|@100g%s|Plafond
2|@108g%s|Agr.
2|@113g%s|Viaggio
2|@121g%s|Rimb.
2|@127g%s|Sosp.
2|@47g%s|Aliq.
2|@54g%s|Cod.
2|@59g%s|Vent.
2|@65g%s|Teorica
2|@73g%s|Vend.
2|@79g%s|Acq.
2|@84g%s|Vend.
2|@90g%s|Acq.
2|@96g%s|Infr.
2|@102g%s|Plafond
2|@110g%s|Agr.
2|@115g%s|Viaggio
2|@123g%s|Rim.
2|@128g%s|Sos.
[Rows]
1|CODTAB|@g@4,cs
1|S0|@6g@50,ls
1|R0|@57g@6n
1|S1|@65g@2s
1|S6|@69g@4s
1|I0|@77g@2n
1|S2|@83g@3s
1|S9|@89g@3s
1|B3|@95g@f
1|S3|@103g@1s
1|S4|@109g@1s
1|S5|@116g@1s
1|B4|@121g@f
1|S0|@6g@40,ls
1|R0|@47g@6n
1|S1|@55g@2s
1|S6|@59g@4s
1|I0|@67g@2n
1|S2|@73g@3s
1|S9|@79g@3s
1|S10|@85g@3s
1|S11|@90g@3s
1|B3|@97g@f
1|S3|@105g@1s
1|S4|@111g@1s
1|S5|@118g@1s
1|B4|@123g@f
1|B2|@128g@f
[Footers]

View File

@ -86,6 +86,7 @@ BEGIN
CHECKTYPE NORMAL
VALIDATE ZEROFILL_FUNC 2
HELP "Inserire il codice iva a cui ventilare l'imposta"
ADD NONE
END
NUMBER FLD_TABIVA_R0 6 2
@ -187,9 +188,37 @@ BEGIN
ITEM "16|Acquisti non soggetti all'imposta effettuati dai terremotati"
END
STRING FLD_TABIVA_S10 3
BEGIN
PROMPT 3 12 "Riga vendite prospetto IVA periodica "
FIELD S10
FLAGS "U"
SHEET "Riga|Descrizione@60"
INPUT FLD_TABIVA_S10
OUTPUT FLD_TABIVA_S10
ITEM " |Nessuno"
ITEM "VP1|VP1"
ITEM "VP2|VP2"
CHECKTYPE NORMAL
END
STRING FLD_TABIVA_S11 3
BEGIN
PROMPT 3 13 "Riga acquisti prospetto IVA periodica "
FIELD S11
FLAGS "U"
SHEET "Riga|Descrizione@60"
INPUT FLD_TABIVA_S11
OUTPUT FLD_TABIVA_S11
ITEM " |Nessuno"
ITEM "VP3|VP3"
ITEM "VP4|VP4"
CHECKTYPE NORMAL
END
LIST LST_TABIVA_S3 1 31
BEGIN
PROMPT 3 12 "Gestione plafond "
PROMPT 3 14 "Gestione plafond "
FIELD S3
HELP "Indicare il tipo di gestione di plafond"
ITEM " |Regime normale"
@ -200,7 +229,7 @@ END
LIST LST_TABIVA_S4 1 43
BEGIN
PROMPT 3 13 "Regime agricolo "
PROMPT 3 15 "Regime agricolo "
FIELD S4
HELP "Indicare il tipo di gestione per regime agricolo"
ITEM " |Regime normale"
@ -211,7 +240,7 @@ END
LIST LST_TABIVA_S5 1 31
BEGIN
PROMPT 3 14 "Ag. viaggio/turismo "
PROMPT 3 16 "Ag. viaggio/turismo "
FIELD S5
HELP "Indicare il tipo di gestione per agenzie viaggio/turismo"
ITEM " |Regime normale"
@ -224,21 +253,21 @@ END
BOOLEAN CHK_TABIVA_B4
BEGIN
PROMPT 3 15 "Escluso dal calcolo rimborso per aliquota media"
PROMPT 3 17 "Escluso dal calcolo rimborso per aliquota media"
FIELD B4
HELP "Indicare se il codice NON vale per il calcolo del rimborso per aliquota media"
END
BOOLEAN CHK_TABIVA_S9
BEGIN
PROMPT 3 16 "Codice per calcolo rimborso infrannuale"
PROMPT 3 18 "Codice per calcolo rimborso infrannuale"
FIELD B3
HELP "Indicare se il codice vale per il calcolo del rimborso infrannuale"
END
BOOLEAN FLD_SOSPESO_B2
BEGIN
PROMPT 3 17 "Codice IVA sospeso"
PROMPT 3 19 "Codice IVA sospeso"
FIELD B2
HELP "Indicare se il codice iva e' sospeso"
END
@ -247,96 +276,3 @@ ENDPAGE
ENDMASK

View File

@ -135,17 +135,17 @@ BEGIN
// MESSAGE HIDE,GRP_VENDITE@|HIDE,GRP_ACQUISTI@|HIDE,GRP_RIEPIVA@|HIDE,GRP_GIORNALE@|HIDE,GRP_LSOCIALI@|HIDE,GRP_CESPITI@|HIDE,GRP_INVENTARI@|HIDE,GRP_GIORNMAG@|SHOW,GRP_INCASSI@
ITEM "5|5) Libro Giornale"
MESSAGE HIDE,GRP_VENDITE@|HIDE,GRP_RIEPIVA@|HIDE,GRP_INCASSI@|HIDE,GRP_LSOCIALI@|HIDE,GRP_CESPITI@|HIDE,GRP_INVENTARI@|HIDE,GRP_GIORNMAG@|SHOW,GRP_GIORNALE@
MESSAGE "",GRP_SOLOGIORNMAG@
MESSAGE "",GRP_SOLOGIORNMAG@|"",F_ATTIVITA
ITEM "6|6) Libri Sociali"
MESSAGE HIDE,GRP_VENDITE@|HIDE,GRP_ACQUISTI@|HIDE,GRP_RIEPIVA@|HIDE,GRP_INCASSI@|HIDE,GRP_GIORNALE@|HIDE,GRP_CESPITI@|HIDE,GRP_INVENTARI@|HIDE,GRP_GIORNMAG@|SHOW,GRP_LSOCIALI@
MESSAGE "",GRP_SOLOGIORNMAG@
MESSAGE "",GRP_SOLOGIORNMAG@|"",F_ATTIVITA
// ITEM "7|7) Libro Cespiti"
// MESSAGE HIDE,GRP_VENDITE@|HIDE,GRP_ACQUISTI@|HIDE,GRP_RIEPIVA@|HIDE,GRP_INCASSI@|HIDE,GRP_GIORNALE@|HIDE,GRP_LSOCIALI@|HIDE,GRP_INVENTARI@|HIDE,GRP_GIORNMAG@|SHOW,GRP_CESPITI@
// MESSAGE HIDE,GRP_VENDITE@|HIDE,GRP_ACQUISTI@|HIDE,GRP_RIEPIVA@|HIDE,GRP_INCASSI@|HIDE,GRP_GIORNALE@|HIDE,GRP_LSOCIALI@|HIDE,GRP_INVENTARI@|HIDE,GRP_GIORNMAG@|SHOW,GRP_CESPITI@|"",F_ATTIVITA
// ITEM "8|8) Libro Inventari"
// MESSAGE HIDE,GRP_VENDITE@|HIDE,GRP_ACQUISTI@|HIDE,GRP_RIEPIVA@|HIDE,GRP_INCASSI@|HIDE,GRP_GIORNALE@|HIDE,GRP_LSOCIALI@|HIDE,GRP_CESPITI@|HIDE,GRP_GIORNMAG@|SHOW,GRP_INVENTARI@
// MESSAGE HIDE,GRP_VENDITE@|HIDE,GRP_ACQUISTI@|HIDE,GRP_RIEPIVA@|HIDE,GRP_INCASSI@|HIDE,GRP_GIORNALE@|HIDE,GRP_LSOCIALI@|HIDE,GRP_CESPITI@|HIDE,GRP_GIORNMAG@|SHOW,GRP_INVENTARI@|"",F_ATTIVITA
ITEM "9|9) Giornale di magazzino"
MESSAGE HIDE,GRP_VENDITE@|HIDE,GRP_ACQUISTI@|HIDE,GRP_RIEPIVA@|HIDE,GRP_INCASSI@|HIDE,GRP_GIORNALE@|HIDE,GRP_LSOCIALI@|HIDE,GRP_CESPITI@|HIDE,GRP_INVENTARI@|SHOW,GRP_GIORNMAG@
MESSAGE "",GRP_NOGIORNMAG@
MESSAGE "",GRP_NOGIORNMAG@|"",F_ATTIVITA
END
STRING F_CONSPRESSO 50

View File

@ -37,7 +37,7 @@ BEGIN
KEY 2
USE %STA KEY 2
INPUT S0 FLD_TABSTA_S0
DISPLAY "Denominazione@50" S0
DISPLAY "Denominazione@60" S0
DISPLAY "Codice" CODTAB
OUTPUT FLD_TABSTA_CODTAB CODTAB
OUTPUT FLD_TABSTA_S0 S0

View File

@ -12,7 +12,7 @@ STRING F_NOMEID 10
BEGIN
PROMPT 1 1 "Nome simbolico sistema inviante "
FIELD %TRA->CODTAB[1,10]
FLAGS "U"
FLAGS "UZ"
KEY 1
USE %TRA
INPUT CODTAB[1,10] F_NOMEID

View File

@ -74,7 +74,10 @@ END
STRING FLD_TABUCC_S6_COMUNI_DENCOM 50
BEGIN
PROMPT 3 9 "Denominazione "
FLAGS "D"
USE LF_COMUNI KEY 2
INPUT DENCOM FLD_TABUCC_S6_COMUNI_DENCOM
#include <comdden.h>
COPY OUTPUT FLD_TABUCC_S6
END
STRING FLD_TABUCC_S6_COMUNI_PROVCOM 2

View File

@ -19,6 +19,7 @@ BEGIN
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@40" S0
OUTPUT FLD_TABUCS_CODTAB CODTAB
OUTPUT FLD_TABUCS_S0 S0
HELP "Codice del centro servizio"
CHECKTYPE REQUIRED
END
@ -30,7 +31,7 @@ BEGIN
KEY 2
USE %UCS KEY 2
INPUT S0 FLD_TABUCS_S0
DISPLAY "Descrizione@40" S0
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
OUTPUT FLD_TABUCS_CODTAB CODTAB
OUTPUT FLD_TABUCS_S0 S0
@ -74,7 +75,10 @@ END
STRING FLD_TABUCS_S6_COMUNI_DENCOM 50
BEGIN
PROMPT 1 9 "Nome "
FLAGS "D"
USE LF_COMUNI KEY 2
INPUT DENCOM FLD_TABUCS_S6_COMUNI_DENCOM
#include <comdden.h>
COPY OUTPUT FLD_TABUCS_S6
HELP ""
END

View File

@ -31,7 +31,7 @@ BEGIN
KEY 2
USE %URE KEY 2
INPUT S0 FLD_TABURE_S0
DISPLAY "Descrizione@40" S0
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
OUTPUT FLD_TABURE_CODTAB CODTAB
OUTPUT FLD_TABURE_S0 S0
@ -73,7 +73,10 @@ END
STRING FLD_TABURE_S6_COMUNI_DENCOM 50
BEGIN
PROMPT 3 9 "Nome "
FLAGS "D"
USE LF_COMUNI KEY 2
INPUT DENCOM FLD_TABURE_S6_COMUNI_DENCOM
#include <comdden.h>
COPY OUTPUT FLD_TABURE_S6
END
STRING FLD_TABURE_S6_COMUNI_PROVCOM 2

View File

@ -9,7 +9,7 @@ Fields=B3,1|B4,1|B5,1|B6,1|B7,1|B8,1|B9,1|FPC,1
[Data]
ESC|%yr%|||||||||||||||||||||||||||||||||||||||||01-01-%yr%|31-12-%yr%||||||||||||||
REG|%yr%VEN|REGISTRO DELLE VENDITE|||||||2|%att%|M|1|||1||||1||||||||||||||||||||||||||||||||||X|X|||
REG|%yr%ACQ|REGISTRO DEGLI ACQUISTI|||||||1|%att%|M|2|||1||||1||||||||||||||||||||||||||||||||||||||
REG|%yr%VEN|REGISTRO DELLE VENDITE|||||||1|%att%|M|1|||1||||1||||||||||||||||||||||||||||||||||X|X|||
REG|%yr%ACQ|REGISTRO DEGLI ACQUISTI|||||||2|%att%|M|2|||1||||1||||||||||||||||||||||||||||||||||||||
REG|%yr%GIO|LIBRO GIORNALE|||||||5|%att%|M|5|||1|1|||1||||||||||||||||||||||||||||||||||||||
REG|%yr%COR|REGISTRO DEI CORRISPETTIVI|||||||3|%att%|M|1|||1||||1||||||||||||||||||||||||||||X||||||||||

View File

@ -33,7 +33,7 @@ IVA|NI08|NI ART 3 c 4 lett e|NI||||||3|4|||||||||||||||||||||||||||||||||||||X|X
IVA|NI09|NI ART 4 ult c. 2 P|NI||||||3|4|||||||||||||||||||||||||||||||||||||X|X|||||||||
IVA|NI10|NI ART 8 c 1 lett a|NI||1||||3|4|||||||||||||||||||||||||||||||||||||X|X||X|||||||
IVA|NI11|NI ART 8 c 1 lett b|NI||1||||3|4|||||||||||||||||||||||||||||||||||||X|X|||||||||
IVA|NI12|NI ART 8is c 1|NI||2||||3|4|||||||||||||||||||||||||||||||||||||X|X|||||||||
IVA|NI12|NI ART 8Bis c 1|NI||2||||3|4|||||||||||||||||||||||||||||||||||||X|X|||||||||
IVA|NI13|NI ART 9 c 1|NI||3||||3|4|||||||||||||||||||||||||||||||||||||X|X||X|||||||
IVA|NI14|NI ART 8 c 2|NI||1||||3|4|||||||||||||||||||||||||||||||||||||X|X||X|||||||
IVA|NI15|NI ART 8bis c 2|NI||2||||3|4|||||||||||||||||||||||||||||||||||||X|X||X|||||||

View File

@ -1,71 +1,4 @@
#include <default.url>
/* ----------------------------------------------------
* cg3 -0
* ---------------------------------------------------- */
MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File"
/* ----------------------------------------------------
* cg3 -1
* ---------------------------------------------------- */
MENUBAR MENU_BAR(1)
MENU MENU_BAR(1)
SUBMENU MENU_FILE "~File"
/* ----------------------------------------------------
* cg3 -2
* ---------------------------------------------------- */
MENUBAR MENU_BAR(2)
MENU MENU_BAR(2)
SUBMENU MENU_FILE "~File"
ITEM BAR_ITEM(1) "~Scelta parametri"
ITEM BAR_ITEM(2) "~Ricalcolo"
ITEM BAR_ITEM(3) "~Disco"
/* ----------------------------------------------------
* cg3 -3
*
* cg3400.cpp Stampa libro giornale
* ----------------------------------------------------*/
MENUBAR MENU_BAR(3)
MENU MENU_BAR(3)
SUBMENU MENU_FILE "~File"
/* ----------------------------------------------------
* cg3 -4
* ---------------------------------------------------- */
MENUBAR MENU_BAR(4)
MENU MENU_BAR(4)
SUBMENU MENU_FILE "~File"
/* ----------------------------------------------------
* cg3 -5
*
* cg3600.cpp Mastrini a video
* ---------------------------------------------------- */
MENUBAR MENU_BAR(5)
MENU MENU_BAR(5)
SUBMENU MENU_FILE "~File"
SUBMENU M_FONT "~Opzioni"
MENU M_FONT
ITEM MENU_ITEM(1) "~Colori righe"
/* ----------------------------------------------------
* cg3 -6
* ---------------------------------------------------- */
MENUBAR MENU_BAR(6)
MENU MENU_BAR(6)
SUBMENU MENU_FILE "~File"

View File

@ -19,11 +19,11 @@
#define FLD_CM1_INDBIL 110
#define FLD_CM1_TMCF 111
#define FLD_CM1_TIPOSPRIC 112
#define FLD_CM1_DTIPOSPRIC 117
#define FLD_CM1_SEZIVDOPP 113
#define FLD_CM1_LETTIVDOPP 114
#define FLD_CM1_NUMRIVDOPP 115
#define FLD_CM1_NUMIVDOPP 116
#define FLD_CM1_DTIPOSPRIC 117
#define FLD_CM1_SEZIVDH 119
#define FLD_CM1_LETTIVDH 120
#define FLD_CM1_NUMRIVDH 121
@ -31,6 +31,8 @@
#define FLD_CM1_RICSER 123
#define FLD_CM1_DESCRANALISI 124
#define FLD_CM1_IVACOMP 125
#define FLD_CM1_DESCIVD 126
#define FLD_CM1_DESCIVDOPP 127
#define FLD_CM2_STSOTTBIL 200
#define FLD_CM2_STSOTTAB 201

View File

@ -32,7 +32,7 @@ END
STRING FLD_CM1_DESCG 50
BEGIN
PROMPT 23 1 ""
PROMPT 24 1 ""
FLAGS "D"
END
@ -59,7 +59,7 @@ END
STRING FLD_CM1_DESCC 50
BEGIN
PROMPT 23 2 ""
PROMPT 24 2 ""
FLAGS "D"
END
@ -97,7 +97,7 @@ END
STRING FLD_CM1_DESC 50
BEGIN
PROMPT 23 3 ""
PROMPT 24 3 ""
FIELD LF_PCON->DESCR
KEY 2
USE LF_PCON KEY 2
@ -176,7 +176,7 @@ END
STRING FLD_CM1_LETTIVD 1 1
BEGIN
PROMPT 56 7 ""
PROMPT 57 7 ""
HELP "Codice del conto secondo la IV direttiva CEE"
FIELD LF_PCON->LETTIVD
GROUP 1 5
@ -185,14 +185,14 @@ END
STRING FLD_CM1_LETTIVDH 1
BEGIN
PROMPT 56 7 ""
PROMPT 57 7 ""
FLAGS "HDU"
GROUP 1 5
END
NUMBER FLD_CM1_NUMRIVD 8 4
BEGIN
PROMPT 60 7 ""
PROMPT 61 7 ""
HELP "Codice del conto secondo la IV direttiva CEE"
FIELD LF_PCON->NUMRIVD
GROUP 1 5
@ -201,15 +201,14 @@ END
NUMBER FLD_CM1_NUMRIVDH 8 4
BEGIN
PROMPT 60 7 ""
PROMPT 61 7 ""
FLAGS "HDMZ"
GROUP 1 5
END
NUMBER FLD_CM1_NUMIVD 2
BEGIN
PROMPT 71 7 ""
HELP "Codice del conto secondo la IV direttiva CEE"
PROMPT 72 7 ""
FIELD LF_PCON->NUMIVD
FLAGS "Z"
GROUP 1 5
@ -227,20 +226,36 @@ BEGIN
OUTPUT FLD_CM1_LETTIVD CODTAB[2,2]
OUTPUT FLD_CM1_NUMRIVD CODTAB[3,6]
OUTPUT FLD_CM1_NUMIVD CODTAB[7,8]
OUTPUT FLD_CM1_DESCIVD S0
CHECKTYPE NORMAL
WARNING "Codice non presente"
END
NUMBER FLD_CM1_NUMIVDH 2
BEGIN
PROMPT 71 7 ""
PROMPT 72 7 ""
FLAGS "HDZ"
GROUP 1 5
END
STRING FLD_CM1_DESCIVD 70 50
BEGIN
PROMPT 24 8 ""
GROUP 1 5
USE %IVD KEY 2
INPUT S0 FLD_CM1_DESCIVD
DISPLAY "Descrizione@50" S0
DISPLAY "Sezione" CODTAB[1,1]
DISPLAY "Lettera" CODTAB[2,2]
DISPLAY "Classe @M" CODTAB[3,6]
DISPLAY "Numero" CODTAB[7,8]
COPY OUTPUT FLD_CM1_NUMIVD
CHECKTYPE NORMAL
END
LIST FLD_CM1_SEZIVDOPP 1 22
BEGIN
PROMPT 1 8 "Classe segno opposto "
PROMPT 1 9 "Classe segno opposto "
FIELD LF_PCON->SEZIVDOPP
GROUP 1 2 4 6
ITEM "0|0. Nessuna" MESSAGE CLEAR,7@
@ -255,7 +270,7 @@ END
STRING FLD_CM1_LETTIVDOPP 1
BEGIN
PROMPT 56 8 ""
PROMPT 57 9 ""
HELP "Codice del conto di sezione opposta secondo la IV direttiva CEE"
FIELD LF_PCON->LETTIVDOPP
FLAGS "U"
@ -264,7 +279,7 @@ END
NUMBER FLD_CM1_NUMRIVDOPP 8 4
BEGIN
PROMPT 60 8 ""
PROMPT 61 9 ""
HELP "Codice del conto di sezione opposta secondo la IV direttiva CEE"
FIELD LF_PCON->NUMRIVDOPP
FLAGS "MZ"
@ -273,7 +288,7 @@ END
NUMBER FLD_CM1_NUMIVDOPP 2
BEGIN
PROMPT 71 8 ""
PROMPT 72 9 ""
HELP "Codice del conto di sezione opposta secondo la IV direttiva CEE"
FIELD LF_PCON->NUMIVDOPP
FLAGS "RZ"
@ -288,13 +303,29 @@ BEGIN
OUTPUT FLD_CM1_LETTIVDOPP CODTAB[2,2]
OUTPUT FLD_CM1_NUMRIVDOPP CODTAB[3,6]
OUTPUT FLD_CM1_NUMIVDOPP CODTAB[7,8]
OUTPUT FLD_CM1_DESCIVDOPP S0
CHECKTYPE NORMAL
WARNING "Codice non presente"
END
LIST FLD_CM1_TIPOSPRIC 1 49
STRING FLD_CM1_DESCIVDOPP 70 50
BEGIN
PROMPT 1 9 "Tipo Spesa/Ricavo "
PROMPT 24 10 ""
GROUP 1 2 4 7
USE %IVD KEY 2
INPUT S0 FLD_CM1_DESCIVDOPP
DISPLAY "Descrizione@50" S0
DISPLAY "Sezione" CODTAB[1,1]
DISPLAY "Lettera" CODTAB[2,2]
DISPLAY "Classe @M" CODTAB[3,6]
DISPLAY "Numero" CODTAB[7,8]
COPY OUTPUT FLD_CM1_NUMIVDOPP
CHECKTYPE NORMAL
END
LIST FLD_CM1_TIPOSPRIC 1 50
BEGIN
PROMPT 1 11 "Tipo Spesa/Ricavo "
FIELD LF_PCON->TIPOSPRIC
GROUP 1 2
HELP "Specificare il tipo do conto"
@ -310,7 +341,7 @@ END
LIST FLD_CM1_RICSER 1 18
BEGIN
PROMPT 1 10 "Ricavi per servizi "
PROMPT 1 12 "Ricavi per servizi "
FIELD RICSER
FLAGS "H"
ITEM "0|Altre attivita'"
@ -319,7 +350,7 @@ END
STRING FLD_CM1_IVACOMP 4
BEGIN
PROMPT 1 11 "Cod. IVA compensazione "
PROMPT 1 13 "Cod. IVA compensazione "
FIELD IVACOMP
GROUP 1 2
USE %IVA
@ -338,7 +369,7 @@ END
LIST FLD_CM1_TMCF 1 13
BEGIN
PROMPT 1 11 "Tipo sottoconti "
PROMPT 1 13 "Tipo sottoconti "
FIELD LF_PCON->TMCF
GROUP 1 3
HELP "Tipo dei sottoconti (Normale o clienti/fornitori)"
@ -349,7 +380,7 @@ END
LIST FLD_CM2_SEZSALDI 1 10
BEGIN
PROMPT 1 12 "Controllo saldo primanota "
PROMPT 1 14 "Controllo saldo primanota "
HELP "Tipo di controllo del saldo in prima nota"
FIELD LF_PCON->SEZSALDI
GROUP 1
@ -360,7 +391,7 @@ END
BOOLEAN FLD_CM2_STSOTTBIL
BEGIN
PROMPT 1 14 "Non stampare dett.sottoc. su bilanci a sezioni"
PROMPT 1 16 "Non stampare dett.sottoc. su bilanci a sezioni"
HELP "Indicare se stampare il dettaglio dei sottoconti nei bilanci a sezioni contrapposte"
FIELD LF_PCON->STSOTTBIL
GROUP 1 3
@ -368,7 +399,7 @@ END
BOOLEAN FLD_CM2_COMPENS
BEGIN
PROMPT 56 14 "Compensazione saldi"
PROMPT 56 16 "Compensazione saldi"
HELP "Indicare se e' ammessa la compensazione dei saldi"
FIELD LF_PCON->COMPENS
GROUP 1 3
@ -376,7 +407,7 @@ END
BOOLEAN FLD_CM2_STSOTTAB
BEGIN
PROMPT 1 15 "Stampa dettaglio sottoconti su analisi"
PROMPT 1 17 "Stampa dettaglio sottoconti su analisi"
HELP "Indicare se stampare il dettaglio dei sottoconti nell'analisi di bilancio"
FIELD LF_PCON->STSOTTAB
// FLAGS "H"
@ -386,7 +417,7 @@ END
BOOLEAN FLD_CM2_STSOTTABS
BEGIN
PROMPT 1 15 "Stampa dettaglio movimenti su analisi "
PROMPT 1 17 "Stampa dettaglio movimenti su analisi "
FIELD LF_PCON->STSOTTAB
// FLAGS "H"
GROUP 1 2
@ -395,7 +426,7 @@ END
BOOLEAN FLD_CM2_SOSPESO
BEGIN
PROMPT 56 15 "Conto sospeso"
PROMPT 56 17 "Conto sospeso"
HELP "Indicare se sospendere il conto in prima nota"
FIELD LF_PCON->SOSPESO
GROUP 1 2

View File

@ -144,6 +144,9 @@
#define F_ADDCONAI 241
#define F_CONAIASS 242
#define F_REFERENTE 243
#define F_DESBANPR 244
#define F_TIPODOCFAT 245
#define F_CODCAUS 246
#define DLG_RIC 300
#define DLG_CST 301

View File

@ -920,7 +920,6 @@ BEGIN
INPUT CODTAB F_CODABIPR
COPY DISPLAY F_CODABI
OUTPUT F_CODABIPR CODTAB[1,5]
// OUTPUT F_CODBANPR CODTAB[6,10]
HELP "Codice ABI della banca presentazione effetti"
CHECKTYPE NORMAL
END
@ -933,56 +932,66 @@ BEGIN
COPY USE F_CODBAN
INPUT CODTAB[1,5] F_CODABIPR
INPUT CODTAB[6,10] F_CODBANPR
COPY DISPLAY F_CODABI
COPY DISPLAY F_CODBAN
OUTPUT F_CODABIPR CODTAB[1,5]
OUTPUT F_CODBANPR CODTAB[6,10]
OUTPUT F_DESBANPR S0
HELP "Codice CAB della banca presentazione effetti"
CHECKTYPE NORMAL
END
STRING F_DESBANPR 50 47
BEGIN
PROMPT 2 5 "Denominazione "
COPY USE F_DESBAN
INPUT S0 F_DESBANPR
COPY DISPLAY F_DESBAN
COPY OUTPUT F_CODBANPR
END
NUMBER F_IMPMINEFF 10
BEGIN
PROMPT 2 5 "Importo minimo effetti "
PROMPT 2 6 "Importo minimo effetti "
PICTURE "."
FIELD LF_CFVEN->IMPMINEFF
END
BOOLEAN F_EMEFFRICH
BEGIN
PROMPT 43 5 "Emissione effetti"
PROMPT 43 6 "Emissione effetti"
FIELD LF_CFVEN->EMEFFRICH
END
BOOLEAN F_RAGGEFF
BEGIN
PROMPT 43 6 "Raggruppamento effetti"
PROMPT 43 7 "Raggruppamento effetti"
FIELD LF_CFVEN->RAGGEFF
END
NUMBER F_NUMESC 5
BEGIN
PROMPT 2 7 "Ultimo Nr. estratto conto "
PROMPT 2 8 "Ultimo Nr. estratto conto "
FIELD LF_CFVEN->NUMESC
GROUP 9
END
NUMBER F_MAXSOLL 2
BEGIN
PROMPT 43 7 "Numero max solleciti "
PROMPT 43 8 "Numero max solleciti "
FIELD LF_CFVEN->MAXSOLL
GROUP 7 9
END
DATE F_DATAESC
BEGIN
PROMPT 2 8 "Data ultimo estratto conto "
PROMPT 2 9 "Data ultimo estratto conto "
FIELD LF_CFVEN->DATAESC
GROUP 9
END
DATE F_DATASOLL
BEGIN
PROMPT 43 8 "Data ultimo sollecito "
PROMPT 43 9 "Data ultimo sollecito "
FIELD LF_CFVEN->DATASOLL
GROUP 7 9
END
@ -990,7 +999,7 @@ END
/* Campo non ancora utilizzato
STRING F_PROFSOLL 5
BEGIN
PROMPT 45 9 "Codice profilo "
PROMPT 45 10 "Codice profilo "
FIELD LF_CFVEN->PROFSOLL
GROUP 7
END
@ -998,12 +1007,12 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 1 9 "@bPeriodi di non accettazione effetti"
PROMPT 1 10 "@bPeriodi di non accettazione effetti"
END
SPREADSHEET F_NONACCEFF 76
BEGIN
PROMPT 1 10 "Periodi effetti"
PROMPT 1 11 "Periodi effetti"
ITEM "Dal\nGiorno@8"
ITEM "Dal\nMese"
ITEM "Al\nGiorno@8"
@ -1075,7 +1084,7 @@ NUMBER F_CODINDDOC 3
BEGIN
PROMPT 2 -3 "Codice indirizzo documento "
FIELD LF_CFVEN->CODINDDOC
GROUP 7
// GROUP 7
SHEET "Codice|Ragione sociale@50|Indirizzo@35|Nr.@10|Localita@35"
ITEM " |**Nessuno**| | | "
INPUT F_CODINDDOC
@ -1086,7 +1095,7 @@ NUMBER F_CODINDSP 3
BEGIN
PROMPT 2 -2 "Codice indirizzo spedizione "
FIELD LF_CFVEN->CODINDSP
GROUP 7
// GROUP 7
SHEET "Codice|Ragione sociale@50|Indirizzo@35|Nr.@10|Localita@35"
INPUT F_CODINDSP
OUTPUT F_CODINDSP
@ -1097,7 +1106,7 @@ NUMBER F_CODINDEFF 3
BEGIN
PROMPT 2 -1 "Codice indirizzo effetti "
FIELD LF_CFVEN->CODINDEFF
GROUP 7
// GROUP 7
SHEET "Codice|Ragione sociale@50|Indirizzo@35|Nr.@10|Localita@35"
INPUT F_CODINDEFF
OUTPUT F_CODINDEFF
@ -1393,7 +1402,7 @@ BEGIN
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 20 5
GROUPBOX DLG_NULL 20 5
BEGIN
PROMPT 1 5 "Vettori"
END
@ -1485,7 +1494,7 @@ END
STRING F_ASSFIS 4
BEGIN
PROMPT 2 11 "Codice Assoggettamento fiscale "
PROMPT 2 10 "Codice Assoggettamento fiscale "
FIELD LF_CFVEN->ASSFIS
HELP "Codice d'assoggettamento fiscale"
USE %IVA
@ -1503,12 +1512,39 @@ END
BOOLEAN F_FATTSOSP
BEGIN
PROMPT 51 11 "Fatture in sospensione"
PROMPT 51 10 "Fatture in sospensione"
FIELD LF_CFVEN->FATTSOSP
HELP "Indicase se si tartta di fatture in sospensione d'imposta"
END
GROUPBOX DLG_NULL 76 4
STRING F_TIPODOCFAT 4
BEGIN
PROMPT 2 11 "Tipo "
FIELD LF_CFVEN->TIPODOCFAT
HELP "Codice tipo documento"
USE %TIP
INPUT CODTAB F_TIPODOCFAT
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOCFAT CODTAB
CHECKTYPE NORMAL
FLAG "UP"
END
STRING F_CODCAUS 3
BEGIN
PROMPT 51 11 "Causale contabile "
FIELD LF_CFVEN->CODCAUS
USE LF_CAUSALI
INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CODCAUS CODCAUS
CHECKTYPE NORMAL
FLAG "U"
END
GROUPBOX DLG_NULL 76 4
BEGIN
PROMPT 1 13 "Dati lettera esenzione"
END

View File

@ -644,7 +644,7 @@ void TPrintclifo_app::set_elenco()
set_row(3,"@9g#t@90g#t@115g#t", &_telefono, &_fax, &_telex);
set_row(4,"@9g#t", &_email);
set_row(5,"@9g#t@45g#t@56g#t@69g#t",&_comnasc, &_datanas, &_piva,&_cofi);
set_row(6,"@9g@3n @3n @6n #t@56g@n #t@90g#t",FLD(LF_CLIFO,CLI_GRUPPORIC),
set_row(6,"@9g@3n @3n @6n #t@56g@t #t@90g#t",FLD(LF_CLIFO,CLI_GRUPPORIC),
FLD(LF_CLIFO,CLI_CONTORIC), FLD(LF_CLIFO, CLI_SOTTOCRIC),&_d_c_ric,
FLD(LF_CLIFO, CLI_CODALLEG), &_d_alleg, &_cpercip);

View File

@ -214,31 +214,31 @@ BEGIN
PROMPT 2 16 "Stampa"
END
BUTTON BUT_CG12_ELENCO 9 2
BUTTON BUT_CG12_ELENCO 10 2
BEGIN
PROMPT 4 17 "~Elenco"
MESSAGE EXIT,BUT_CG12_ELENCO
END
BUTTON BUT_CG12_RUBRICHE 9 2
BUTTON BUT_CG12_RUBRICHE 10 2
BEGIN
PROMPT 16 17 "~Rubriche"
MESSAGE EXIT,BUT_CG12_RUBRICHE
END
BUTTON BUT_CG12_ETICHETTE 9 2
BUTTON BUT_CG12_ETICHETTE 10 2
BEGIN
PROMPT 28 17 "E~tichette"
MESSAGE EXIT,BUT_CG12_ETICHETTE
END
BUTTON BUT_CG12_VENDITE 9 2
BUTTON BUT_CG12_VENDITE 10 2
BEGIN
PROMPT 40 17 "~Vendite"
MESSAGE EXIT,BUT_CG12_VENDITE
END
BUTTON DLG_QUIT 9 2
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT 55 17 ""
END

View File

@ -29,17 +29,17 @@ BEGIN
HELP "Numero totale di colonne per etichetta (larghezza)"
END
BUTTON DLG_OK 9 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 "Conferma"
PROMPT -13 -1 ""
END
BUTTON BUT_CGB_RESET 9 2
BUTTON BUT_CGB_RESET 10 2
BEGIN
PROMPT -23 -1 "~Reset"
END
BUTTON DLG_CANCEL 9 2
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 "Annulla"
END

View File

@ -4,7 +4,7 @@ PAGE "Impostazione mese liquidazione" -1 -1 78 10
GROUPBOX DLG_NULL 77 4
BEGIN
PROMPT 1 1 "Registro"
PROMPT 1 1 "@bRegistro"
END
NUMBER F_ANNO 4

View File

@ -1660,7 +1660,7 @@ bool TStampa_bilanci::calcola(int g, int c, long s)
real importo;
int annoe;
long num_reg;
TDate data_reg, data, datacomp;
TDate data_reg, data, datacomp, data_start;
bool conto_mov = FALSE;
TLocalisamfile rmov(LF_RMOV);
TLocalisamfile mov(LF_MOV);
@ -1675,6 +1675,17 @@ bool TStampa_bilanci::calcola(int g, int c, long s)
_saldo_ini_avere = ZERO;
_u_max = 0l;
data_start = _dataini;
// Calcolo progressivi precedenti:
// e non è indicato l'anno esercizio, prende il primo giorno dell'anno indicato da _datada
if (_annoes == 0)
{
data_start = _datada;
data_start.set_day(1);
data_start.set_month(1);
}
rmov.setkey(2);
rmov.zero();
rmov.put(RMV_GRUPPO,g);
@ -1756,7 +1767,7 @@ bool TStampa_bilanci::calcola(int g, int c, long s)
}
}
else if (_datada > _dataini) //calcolo i progressivi precedenti
if ( (data_reg >= _dataini) && (data_reg < _datada) )
if ( (data_reg >= data_start) && (data_reg < _datada) )
{
if (sezione == 'D')
_prg_prec_dare += importo;

View File

@ -187,7 +187,7 @@ bool TPrimanota_application::user_create()
{
open_files(LF_TABCOM, LF_TAB, LF_CAUSALI, LF_RCAUSALI, LF_CLIFO, LF_PCON, 0);
open_files(LF_ATTIV, LF_SALDI, LF_COMUNI, LF_OCCAS, LF_NDITTE, 0);
open_files(LF_PARTITE, LF_SCADENZE, LF_PAGSCA, 0);
open_files(LF_PARTITE, LF_SCADENZE, LF_PAGSCA, LF_AGENTI, 0);
_incasso = new TDati_incasso;
@ -484,8 +484,11 @@ void TPrimanota_application::init_mask(TMask& m)
// Show/Hide campi valuta: F_VALUTAINTRA, F_CAMBIOINTRA, F_CORRLIRE, F_CORRVAL (GROUP 4)
m.show(-4, causale().valintra());
if (m.insert_mode() && causale().valintra() && !causale().intra())
m.set(F_SOLAIVA, "X", TRUE); // Propone movimento di sola iva
if (god_mode("IntraAutoIva"))
{
if (m.insert_mode() && causale().valintra() && !causale().intra())
m.set(F_SOLAIVA, "X", TRUE); // Propone movimento di sola iva
}
m.show(F_CODIVA, m.insert_mode()); // Codice IVA standard

View File

@ -160,7 +160,7 @@ BEGIN
FIELD DESCR
USE %DPN KEY 2
INPUT S0 F_DESCR
DISPLAY "Descrizione@50" S0
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_DESCAGG
END

View File

@ -196,7 +196,7 @@ BEGIN
FIELD DESCR
USE %DPN KEY 2
INPUT S0 F_DESCR
DISPLAY "Descrizione@50" S0
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_DESCAGG
END
@ -444,13 +444,13 @@ BEGIN
CHECKTYPE SEARCH
END
NUMBER SK_CAMBIO 15 5
NUMBER SK_CAMBIO 15 6
BEGIN
PROMPT 44 13 "Cambio "
FIELD CAMBIO
FLAGS "RU"
GROUP 3
PICTURE ".5"
PICTURE ".6"
CHECKTYPE REQUIRED
WARNING "Inserire il cambio o eliminare il codice valuta"
END
@ -547,13 +547,13 @@ BEGIN
VALIDATE REQIF_FUNC 1 F_CORRVALUTA
END
NUMBER F_CAMBIOINTRA 15 5
NUMBER F_CAMBIOINTRA 15 6
BEGIN
PROMPT 39 17 "Cambio intracomun. "
FIELD CAMBIOI
FLAGS "U"
GROUP 4
PICTURE ".5"
PICTURE ".6"
END
CURRENCY F_CORRLIRE 18
@ -611,7 +611,7 @@ BEGIN
FLAGS "D"
END
SPREADSHEET F_SHEETIVA 0 6
SPREADSHEET F_SHEETIVA 0 5
BEGIN
PROMPT 0 4 ""
ITEM "Imponibile@15"
@ -628,19 +628,19 @@ END
CURRENCY F_IMPONIBILI 18
BEGIN
PROMPT 1 11 "Totale imponibili "
PROMPT 1 10 "Totale imponibili "
FLAGS "D"
END
CURRENCY F_IMPOSTE 18
BEGIN
PROMPT 41 11 "Totale imposte "
PROMPT 41 10 "Totale imposte "
FLAGS "D"
END
SPREADSHEET F_SHEETCG 0 -2
BEGIN
PROMPT 0 12 ""
PROMPT 0 11 ""
ITEM "Dare@15F"
ITEM "Avere@15F"
ITEM "C/F@1"

View File

@ -49,12 +49,12 @@ BEGIN
GROUP 3
END
NUMBER P_CAMBIO 15 5
NUMBER P_CAMBIO 15 6
BEGIN
PROMPT 43 2 "Cambio "
FLAGS "DU"
GROUP 3
PICTURE ".5"
PICTURE ".6"
FIELD ANTIOUTPUT
CHECKTYPE REQUIRED
END
@ -115,7 +115,7 @@ BEGIN
ITEM "Data doc.@10"
ITEM "Data scad."
ITEM "Descrizione@20"
ITEM "Importo Lire@16"
ITEM "Importo@16"
ITEM "Importo Valuta@16"
ITEM "Num. op. "
ITEM "Data op.@10"
@ -237,6 +237,11 @@ BEGIN
PROMPT 1 4 "Numero doc. "
END
DATE 104
BEGIN
PROMPT 41 4 "Data scad. "
END
LIST 112 1 20
BEGIN
PROMPT 1 5 "Tipo movimento "
@ -253,11 +258,6 @@ BEGIN
PROMPT 41 5 "Protocollo IVA "
END
DATE 104
BEGIN
PROMPT 41 4 "Data scad. "
END
STRING 105 50
BEGIN
PROMPT 1 6 "Descrizione "
@ -265,7 +265,7 @@ END
STRING 106 14
BEGIN
PROMPT 1 7 "Importo Lire "
PROMPT 1 7 "Importo "
FLAGS "R"
END

View File

@ -550,7 +550,13 @@ HIDDEN bool imptot_error(const TImporto& imptot, const TImporto& impsal, bool va
{
TPrimanota_application& a = app();
const TMask& m = a.curr_mask();
TString16 codval; if (val) codval = m.get(SK_VALUTA);
const char* pic = ".";
TString16 codval;
if (val)
{
codval = m.get(SK_VALUTA);
pic = ".3";
}
TCurrency euro(imptot.valore(), codval);
TString msg(255);
@ -559,14 +565,14 @@ HIDDEN bool imptot_error(const TImporto& imptot, const TImporto& impsal, bool va
msg << "in valuta " << codval;
else
msg << "inserito";
msg << " e' " << euro.string(TRUE) << ' ' << imptot.sezione() << ",\n";
msg << " e' " << euro.get_num().string(pic) << ' ' << imptot.sezione() << ",\n";
euro.set_num(cassa.valore());
msg << "i pagamenti e le spese ammontano a "
<< euro.string(TRUE) << ' ' << cassa.sezione() << ",\n";
<< euro.get_num().string(pic) << ' ' << cassa.sezione() << ",\n";
euro.set_num(residuo.valore());
msg << "per cui il residuo e' " << euro.string(TRUE) << '.';
msg << "per cui il residuo e' " << euro.string(TRUE);
if (m.edit_mode() && impsal.is_zero())
{
@ -1076,7 +1082,7 @@ TSheet_field& TPrimanota_application::pags() const
// Certified 100%
TSheet_field& TPrimanota_application::ivas() const
{
TSheet_field& s = (TSheet_field&)_msk[2]->field(F_SHEETIVA);
TSheet_field& s = _msk[2]->sfield(F_SHEETIVA);
return s;
}
@ -1207,7 +1213,7 @@ bool TPrimanota_application::imposta_handler(TMask_field& f, KEY key)
}
return TRUE;
}
}
// Calcola il totale degli imponibili e delle imposte e aggiorna
@ -1604,11 +1610,12 @@ bool TPrimanota_application::sheet_clifo_handler(TMask_field& f, KEY k)
const short gid = cid-1;
const int conto = m.get_int(cid);
const int gruppo = m.get_int(gid);
if (gruppo == 0 && conto == 0)
if ((k == K_TAB && f.focusdirty()) || (gruppo == 0 && conto == 0))
{
TBill c(0, 0, codice, f.dlg() > 300 ? 'F' : 'C');
m.set(f.dlg()+1, c.descrizione()); // Carica gruppo e conto
if (c.ok())
c.find(); // Carica descrizione, gruppo e conto
m.set(f.dlg()+1, c.descrizione());
if (c.ok())
{
m.set(gid-1, c.tipo() == 'C' ? "C" : "F");
m.set(gid, c.gruppo());
@ -2092,8 +2099,6 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
if (f.focusdirty() && a.is_nota_credito())
{
TPartite_array& p = a.partite();
// if (m.edit_mode())
// p.add_numreg(m.get_long(F_NUMREG)); // Gia' fatto dalla read!
const TPartita* game = p.first();
if (game != NULL && atol(f.get()) != game->conto().codclifo())
@ -2138,11 +2143,12 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
const int alleg = clifo.get_int(CLI_ALLEG);
TEdit_field& upi = m.efield(F_RIEPILOGO);
upi.check_type(alleg == 3 ? CHECK_REQUIRED : CHECK_NORMAL);
if (m.insert_mode() && m.get(F_CODPAG).empty())
const TString& oldpag = m.get(F_CODPAG);
if (m.is_running() /* m.insert_mode() && oldpag.empty() */)
{
const TString& s = clifo.get(CLI_CODPAG);
if (s.not_empty())
if (s.not_empty() && s != oldpag)
{
TEdit_field& cp = m.efield(F_CODPAG);
if (cp.active()) // Se il campo F_CODPAG e' attivo
@ -2221,14 +2227,14 @@ bool TPrimanota_application::IVA2bill(const TCodiceIVA& iva, TBill& bill)
// Certified 99%
bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key)
{
if (key == K_TAB && f.get().not_empty())
if (key == K_TAB && !f.empty())
{
if (!suspended_handler(f, key))
return FALSE;
TPrimanota_application& a = app();
const real imp(a.ivas().row(1).get(0)); // Se il totale non e' stato spezzato
if (imp.is_zero())
const real imp(a.ivas().row(1).get(0));
if (imp.is_zero()) // Se il totale documento non e' stato spezzato
{
TToken_string& row = a.ivas().row(0);
@ -2239,7 +2245,7 @@ bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key)
const bool corr = a.causale().corrispettivi();
const bool acq3 = (a.iva() == iva_acquisti) && (row.get_int(2) == 3);
real tot = a.totale_documento(); // Calcola totale documento
real tot = a.totale_documento(); // Calcola totale documento
real imposta; // Calcola imposta
if (!corr && !acq3)
imposta = iva.scorpora(tot);
@ -2299,9 +2305,9 @@ void TPrimanota_application::gioca_cambi(int force)
if (m.id2pos(SK_CONTROEURO) >= 0)
m.reset(SK_CONTROEURO);
bool dummy_contro_euro;
exchange_type dummy_contro_euro;
const real& fc = TCurrency::get_firm_change(dummy_contro_euro);
if (fc > ZERO && fc != 1.0)
if (fc > ZERO)
new_cambio *= fc;
new_cambio.round(6);

View File

@ -169,7 +169,7 @@ bool TPrimanota_application::pag_notify(TSheet_field& ps, int r, KEY k)
TDate d(news);
int scd = (int)(d - pag.data_rata(r-1));
if (pag.mese_commerciale() && (scd % 30) != 0)
scd = 30 * ((scd/30)+1);
scd = 30 * ((scd/30)+1);
trw.add(scd, 0);
}
trs.add(news, 0);

View File

@ -31,6 +31,7 @@ class TGame_mask : public TMask
int _riga_partite; // Riga corrente delle partite
bool _changed; // Flag di modifica partite
bool _valfirst; // La colonna della valuta precede le lire
bool _ignore_next_select; // Flag per ignorare la select(0) iniziale sulle partite
protected:
static bool annopart_handler(TMask_field& f, KEY k);
@ -74,11 +75,10 @@ protected:
const TRiga_partite* cerca_prima_riga() const;
void aggiorna_valuta(const TValuta& val);
// void aggiorna_sorelle(const TRiga_partite& part) const;
public:
TSheet_field& partite() const { return (TSheet_field&)field(P_PARTITE); }
TSheet_field& scadenze() const { return (TSheet_field&)field(P_SCADENZE); }
TSheet_field& partite() const { return sfield(P_PARTITE); }
TSheet_field& scadenze() const { return sfield(P_SCADENZE); }
const TBill& conto() const { return _conto; }
const TImporto& residuo(bool val) const { return val ? _resval : _residuo; }
@ -230,7 +230,7 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad,
const TRiga_partite& fatt = _assigned ? scad.riga() : sum;
TRelation rel(LF_PAGSCA); // Working relation
rel.add(LF_PARTITE, "ANNO=ANNO|NUMPART=NUMPART");
rel.add(LF_PARTITE, "ANNO==ANNO|NUMPART==NUMPART");
rel.curr() = oldpag;
rel.curr(LF_PARTITE) = sum;
autoload(rel); // Load current record on mask
@ -292,10 +292,13 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad,
res_rat.normalize(sez_fat);
_da_pagare = res_rat.valore(); // Calcola residuo in valuta
TReal_field& res = (TReal_field&)field(S_RESIDUORATA);
res.set_decimals(in_valuta ? 3 : 0);
TEdit_field& resrat = efield(S_RESIDUORATA);
resrat.reset_driver();
if (in_valuta)
resrat.add_driver(S_CODVAL);
if (get(S_SALDOACC)[0] != 'S')
res.set(_da_pagare.string());
resrat.set(_da_pagare.string());
}
else
{
@ -315,9 +318,11 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad,
#ifndef __EXTRA__
_pagabile = _parent->residuo(in_valuta).valore();
TReal_field& resp = (TReal_field&)field(S_RESIDUOPAG);
resp.set_decimals(in_valuta ? 3 : 0);
resp.set(_pagabile.string());
TEdit_field& respag = efield(S_RESIDUOPAG);
respag.reset_driver();
if (in_valuta)
respag.add_driver(S_CODVAL);
respag.set(_pagabile.string());
_pagabile += oldimp;
#endif
@ -572,6 +577,7 @@ void TNew_mask::init(char tipocf, bool fatt, bool edit)
tipomov.set(_allow_fatt ? "1" : "3");
if (!_allow_fatt)
set_caption("Nuovo pagamento");
reset(P_NUMERO);
#else
tipomov.disable();
#endif
@ -665,7 +671,7 @@ void TGame_mask::init(const TBill& bill, long numreg, int riga)
}
TGame_mask::TGame_mask(const TBill& bill, long numreg, int riga)
: TMask("cg2100p"), _valfirst(FALSE)
: TMask("cg2100p"), _valfirst(FALSE), _ignore_next_select(FALSE)
{
init(bill, numreg, riga);
}
@ -822,26 +828,6 @@ void TGame_mask::aggiorna_valuta(const TValuta& val)
fill_partite();
}
/*
void TGame_mask::aggiorna_sorelle(const TRiga_partite& part) const
{
TPartite_array& pa = app().partite();
for (TPartita* game = pa.first(); game; game = pa.next())
{
for (int r = game->last(); r > 0; r = game->pred(r))
{
TRiga_partite& row = game->riga(r);
if (row.get_long(PART_NREG) == _numreg && row.get_int(PART_NUMRIG) == _numrig)
{
row.put(PART_DESCR, part.get(PART_DESCR));
row.put(PART_DATAPAG, part.get(PART_DATAPAG));
row.put(PART_TIPOPAG, part.get(PART_TIPOPAG));
}
}
}
}
*/
TToken_string& TGame_mask::add_colored_row(TSheet_field& sheet, char type) const
{
int r = sheet.insert(-1, FALSE, FALSE);
@ -856,10 +842,19 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
TGame_mask& gm = (TGame_mask&)partite.mask();
if (k == K_TAB)
{
{
if (gm._ignore_next_select)
{
gm._ignore_next_select = FALSE;
return TRUE;
}
const bool changing_row = gm._riga_partite != r;
if (!changing_row)
return TRUE;
TWait_cursor hourglass;
gm._riga_partite = r;
TWait_cursor hourglass;
@ -939,9 +934,11 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
{
const TRectype& pag = scad.row(pa);
const TRiga_partite& sum = game->riga(pa);
const char sez = sum.sezione();
TToken_string& row = gm.add_colored_row(sheet, ' ');
const char sez = sum.sezione();
const long nreg = sum.get_long(PART_NREG);
const int nrig = sum.get_int(PART_NUMRIG);
const bool linked = nreg == gm._numreg && nrig == gm._numrig;
TToken_string& row = gm.add_colored_row(sheet, linked ? 'X' : ' ');
row.add(ri);
row.add(ra);
row.add(sum.get(PART_DATADOC));
@ -958,7 +955,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
gm.add_importo(row, imp);
row.add("");
}
row.add(sum.get(PART_NREG));
row.add(nreg);
row.add(sum.get(PART_DATAREG));
row.add(sum.get(PART_NUMDOC));
row.add("");
@ -1044,8 +1041,10 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
const TRectype& pag = unas.row(pa);
const TRiga_partite& sum = game->riga(pa);
const char sez = sum.sezione();
TToken_string& row = gm.add_colored_row(sheet, ' ');
const long nreg = sum.get_long(PART_NREG);
const int nrig = sum.get_int(PART_NUMRIG);
const bool linked = nreg == gm._numreg && nrig == gm._numrig;
TToken_string& row = gm.add_colored_row(sheet, linked ? 'X' : ' ');
row.add(pag.get(PAGSCA_NRIGA));
row.add(pag.get(PAGSCA_NRATA));
row.add(sum.get(PART_DATADOC));
@ -1066,7 +1065,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
}
else
row.add("");
row.add(sum.get(PART_NREG));
row.add(nreg);
row.add(sum.get(PART_DATAREG));
row.add(sum.get(PART_NUMDOC));
row.add("");
@ -1118,10 +1117,11 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
header << "valuta";
sheet.set_column_header(107, header);
sheet.force_update();
if (sheet.items() > 0)
sheet.select(0, TRUE);
else
sheet.force_update();
sheet.force_update();
}
if (k == K_INS)
@ -1309,7 +1309,7 @@ bool TGame_mask::edit_scadenza_handler(TMask_field& f, KEY k)
const TBill& bill = gm.conto(); // Clifo
TSheet_field& sp = gm.partite();
TToken_string& spr = sp.row(sp.selected());
TToken_string& spr = sp.row(gm._riga_partite);
const int anno = spr.get_int(0); // Anno
const TString numero = spr.get(); // Numero
@ -1343,21 +1343,20 @@ bool TGame_mask::edit_scadenza_handler(TMask_field& f, KEY k)
#endif
tipo_movimento tm;
#ifdef __EXTRA__
TMask* nm = new TNew_mask(gm.conto().tipo(), FALSE, FALSE);
nm->set(P_ANNO, game.anno());
nm->set(P_NUMERO, game.numero());
const KEY k = nm->run();
tm = (tipo_movimento)nm->get_int(P_NUOVO);
delete nm; nm = NULL;
if (k == K_ENTER)
tm = (tipo_movimento)nm->get_int(P_NUOVO);
else
if (k != K_ENTER)
{
if (was == NULL) giochi.destroy(game);
if (was == NULL)
giochi.destroy(game);
return FALSE;
}
delete nm;
#else
tm = (tipo_movimento)app().causale().tipomov();
#endif
@ -1454,7 +1453,7 @@ bool TGame_mask::nuovo_handler(TMask_field& f, KEY k)
static TNew_mask* new_game = NULL;
if (new_game == NULL)
new_game = new TNew_mask(gm.conto().tipo(), allow_fatt, TRUE);
else
else
new_game->init(gm.conto().tipo(), allow_fatt, TRUE);
tipo_movimento tm;
@ -1563,7 +1562,8 @@ TImporto TGame_mask::get_importo(TToken_string& s, int pos) const
int TGame_mask::update_partita(const TRectype& riga,
const TImporto& saldo, const TImporto& doc,
const TImporto& pag, const TImporto& imp, int prow)
const TImporto& pag, const TImporto& imp,
int prow)
{
TSheet_field& games = partite();
TToken_string &r = games.row(prow); // Stringa di lavoro per lo sheet
@ -1589,7 +1589,7 @@ int TGame_mask::update_partita(const TRectype& riga,
}
if (prow >= 0)
{
{
games.force_update(prow);
update_saldo_clifo();
games.force_update(games.items()-1);
@ -1614,7 +1614,9 @@ int TGame_mask::update_partita(const TPartita& part, int prow)
TImporto saldo, doc, pag, imp;
part.calcola_saldo(saldo, doc, pag, imp);
return update_partita(part.riga(r), saldo, doc, pag, imp, prow);
prow = update_partita(part.riga(r), saldo, doc, pag, imp, prow);
return prow;
}
int TGame_mask::update_partita(const TRectype& riga, int prow)
@ -1695,9 +1697,9 @@ void TGame_mask::fill_partite()
const int annorif = get_int(P_ANNO); // Anno corrente
const TString numrif = get(P_NUMERO); // Partita corrente
const bool all = get(P_SHOWALL).not_empty(); // Visualizza anche partite chiuse
partite().destroy();
TString_array& a = partite().rows_array();
a.destroy();
TPartite_array& giochi = app().partite();
for (TPartita* gioco = giochi.first(); gioco != NULL; gioco = giochi.next())
@ -1750,13 +1752,7 @@ void TGame_mask::fill_partite()
}
a.sort();
for (int r = a.last(); r > 0; r--)
{
TToken_string& row = a.row(r);
if (annorif == row.get_int(0) && same_number(numrif, row.get(1)))
break;
}
update_saldo_clifo();
partite().force_update();
aggiorna_residuo();
@ -1764,7 +1760,28 @@ void TGame_mask::fill_partite()
if (a.items() > 1)
{
_riga_partite = -1;
partite().select(r, TRUE);
int found = -1;
for (int r = a.last(); r >= 0; r--)
{
TToken_string& row = a.row(r);
const int anno = row.get_int(0);
const TString16 numero = row.get(1);
if (found < 0 && annorif == anno && same_number(numrif, numero))
found = r;
TPartita* gioco = app().partite().exist(conto(), anno, numero);
if (gioco != NULL && gioco->mov2rig(_numreg, _numrig) > 0)
{
COLOR back, fore;
app().type2colors('X', back, fore);
partite().set_back_and_fore_color(back, fore, r);
}
}
if (found < 0) found = 0;
partite().select(found, TRUE);
_ignore_next_select = !is_running();
}
else
{
@ -1791,7 +1808,7 @@ bool TGame_mask::edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp) co
else
pm->init(this, nuovo ? MODE_INS : MODE_MOD);
TPay_mask& m = *pm;
if (nriga == TPartita::UNASSIGNED)
{
TRiga_scadenze& scaden = somma.new_row(); // Crea una rata falsa
@ -1810,7 +1827,7 @@ bool TGame_mask::edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp) co
imp.set_dirty();
imp.on_key(K_F8);
}
KEY key = m.run();
if (key == K_DEL)
@ -1849,7 +1866,8 @@ bool TGame_mask::edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp) co
#endif
}
// delete pm; // commentata in quanto statica
// delete pm; pm = NULL; // commentata in quanto statica
#ifdef __EXTRA__
xvt_statbar_set("Estratto conto", TRUE);
#endif

View File

@ -145,7 +145,7 @@ TColor_mask::TColor_mask()
TVariable_sheet_field& s = (TVariable_sheet_field&)fld(0);
s.set_getmask(get_mask);
const char* const tipi = "TFSIDNAPRCGLK";
const char* const tipi = "TFSIDNAPRCGLKX";
const char* const desc[] =
{
"Tot. doc./sdo partite",
@ -161,6 +161,7 @@ TColor_mask::TColor_mask()
"Spese",
"Contropartita spese",
"Riga Cliente/Fornitore",
"Riga Collegata",
};
TPrimanota_application& a = app();
@ -237,7 +238,10 @@ COLOR TPrimanota_application::type2color(char tipor, char tipoc)
if (colstr == NULL)
{
colstr = new TString(8);
colstr->format("%ld", tipoc == 'B' ? NORMAL_BACK_COLOR : NORMAL_COLOR);
if (tipor == 'X')
colstr->format("%ld", tipoc == 'B' ? FOCUS_BACK_COLOR : FOCUS_COLOR);
else
colstr->format("%ld", tipoc == 'B' ? NORMAL_BACK_COLOR : NORMAL_COLOR);
_colori.add(key, colstr);
}
col = atol(*colstr);

View File

@ -24,7 +24,7 @@ BEGIN
USE %DPN KEY 2
INPUT S0 109
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
DISPLAY "Codice@10" CODTAB
COPY OUTPUT 108
FIELD DESCR
END

View File

@ -7,6 +7,13 @@ BEGIN
WARNING "La data di scadenza e' obbligatoria"
END
NUMBER 104 6 2
BEGIN
PROMPT 1 2 "Percentuale "
PICTURE ".2"
FLAGS "U"
END
CURRENCY 102 18
BEGIN
PROMPT 1 3 "Importo "
@ -23,13 +30,6 @@ BEGIN
DRIVENBY -FS_VALUTA
END
NUMBER 104 6 2
BEGIN
PROMPT 1 2 "Percentuale "
PICTURE ".2"
FLAGS "U"
END
NUMBER 105 1
BEGIN
PROMPT 1 5 "Tipo pagamento "
@ -71,6 +71,19 @@ NUMBER 108 5
BEGIN
PROMPT 1 7 "Ns. Banca ABI "
FLAGS "Z"
USE %BAN SELECT CODTAB?="?????"
INPUT CODTAB[1,5] 108
INPUT CODTAB[6,10] 109
DISPLAY "ABI@5" CODTAB[1,5]
DISPLAY "Denominazione@50" S0
OUTPUT 108 CODTAB[1,5]
CHECKTYPE NORMAL
END
NUMBER 109 5
BEGIN
PROMPT 27 7 "Ns. Banca CAB "
FLAGS "Z"
USE %BAN
INPUT CODTAB[1,5] 108
INPUT CODTAB[6,10] 109
@ -83,14 +96,6 @@ BEGIN
CHECKTYPE NORMAL
END
NUMBER 109 5
BEGIN
PROMPT 27 7 "Ns. Banca CAB "
FLAGS "Z"
COPY ALL 108
CHECKTYPE NORMAL
END
STRING 126 50 45
BEGIN
PROMPT 1 8 ""
@ -99,7 +104,7 @@ BEGIN
DISPLAY "Denominazione@50" S0
DISPLAY "ABI@5" CODTAB[1,5]
DISPLAY "CAB@5" CODTAB[6,10]
COPY OUTPUT 108
COPY OUTPUT 109
CHECKTYPE NORMAL
END
@ -109,11 +114,8 @@ BEGIN
FLAGS "Z"
COPY USE 108
INPUT CODTAB[1,5] 110
INPUT CODTAB[6,10] 111
COPY DISPLAY 108
OUTPUT 110 CODTAB[1,5]
OUTPUT 111 CODTAB[6,10]
OUTPUT 128 S0
CHECKTYPE NORMAL
END
@ -121,17 +123,23 @@ NUMBER 111 5
BEGIN
PROMPT 27 9 "Vs. Banca CAB "
FLAGS "Z"
COPY ALL 110
COPY USE 109
INPUT CODTAB[1,5] 110
INPUT CODTAB[6,10] 111
COPY DISPLAY 109
OUTPUT 110 CODTAB[1,5]
OUTPUT 111 CODTAB[6,10]
OUTPUT 128 S0
CHECKTYPE NORMAL
END
STRING 128 50 45
BEGIN
PROMPT 1 10 ""
COPY USE 110
COPY USE 126
INPUT S0 128
COPY DISPLAY 126
COPY OUTPUT 110
COPY OUTPUT 111
CHECKTYPE NORMAL
END

View File

@ -105,11 +105,11 @@ BEGIN
GROUP 3
END
NUMBER FS_CAMBIO 15 5
NUMBER FS_CAMBIO 15 6
BEGIN
PROMPT 62 7 ""
FLAGS "DU"
PICTURE ".5"
PICTURE ".6"
VALIDATE REQIF_FUNC 1 FS_VALUTA
WARNING "E' stata specificata una valuta ma non il cambio relativo"
GROUP 3
@ -119,6 +119,18 @@ NUMBER FS_NSABI 5
BEGIN
PROMPT 2 8 "Ns. Banca ABI "
FLAGS "Z"
USE %BAN SELECT CODTAB?="?????"
INPUT CODTAB[1,5] FS_NSABI
DISPLAY "ABI@5" CODTAB[1,5]
DISPLAY "Denominazione@50" S0
OUTPUT FS_NSABI CODTAB[1,5]
CHECKTYPE NORMAL
END
NUMBER FS_NSCAB 5
BEGIN
PROMPT 25 8 "CAB "
FLAGS "Z"
USE %BAN
INPUT CODTAB[1,5] FS_NSABI
INPUT CODTAB[6,10] FS_NSCAB
@ -131,14 +143,6 @@ BEGIN
CHECKTYPE NORMAL
END
NUMBER FS_NSCAB 5
BEGIN
PROMPT 25 8 "CAB "
FLAGS "Z"
COPY ALL FS_NSABI
CHECKTYPE NORMAL
END
STRING FS_DESCNSABI 50 37
BEGIN
PROMPT 38 8 ""
@ -169,7 +173,13 @@ NUMBER FS_VSCAB 5
BEGIN
PROMPT 25 9 "CAB "
FLAGS "Z"
COPY ALL FS_VSABI
COPY USE FS_NSCAB
INPUT CODTAB[1,5] FS_VSABI
INPUT CODTAB[6,10] FS_VSCAB
COPY DISPLAY FS_NSCAB
OUTPUT FS_VSABI CODTAB[1,5]
OUTPUT FS_VSCAB CODTAB[6,10]
OUTPUT FS_DESCVSABI S0
CHECKTYPE NORMAL
END
@ -179,7 +189,7 @@ BEGIN
COPY USE FS_DESCNSABI
INPUT S0 FS_DESCVSABI
COPY DISPLAY FS_DESCNSABI
COPY OUTPUT FS_VSABI
COPY OUTPUT FS_VSCAB
CHECKTYPE NORMAL
END

View File

@ -347,7 +347,8 @@ bool TProvvisori_app::menu(MENU_TAG)
cur.set_filterfunction(filter);
const TRecnotype total = cur.items();
TString action(key == K_ENTER ? "conferma" : "cancellazione");
action << " di "; add_plural(action, total, "movimento");
@ -361,7 +362,7 @@ bool TProvvisori_app::menu(MENU_TAG)
}
else
{
warning_box(caption);
warning_box("Nessun movimento nella selezione effettuata");
continue;
}

View File

@ -470,7 +470,7 @@ bool TMastrini_application::gruppo_hnd (TMask_field& f, KEY k)
bool TMastrini_application::contoi_hnd (TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
if (k == K_TAB && f.focusdirty() && f.mask().is_running())
{
TMask& m = f.mask();
TLocalisamfile pconti (LF_PCON);
@ -655,7 +655,7 @@ bool TMastrini_application::scelte_notify(TSheet_field& s, int r, KEY k)
{
bool ok = TRUE;
if (k == K_INS)
return ok = FALSE;
ok = FALSE;
return ok;
}

View File

@ -116,7 +116,7 @@ END
NUMBER F_CONTOINI_CLIENTE 3
BEGIN
PROMPT 41 5 ""
USE LF_PCON SELECT (TMCF="C") // && (CONTO!="") && (SOTTOCONTO="")
USE LF_PCON SELECT TMCF="C"
INPUT GRUPPO F_GRUPPOINI
INPUT CONTO F_CONTOINI_CLIENTE
DISPLAY "Gruppo" GRUPPO
@ -136,7 +136,7 @@ END
NUMBER F_CONTOINI_FORN 3
BEGIN
PROMPT 41 5 ""
USE LF_PCON SELECT (TMCF="F") // && (CONTO!="") && (SOTTOCONTO="")
USE LF_PCON SELECT TMCF="F"
INPUT GRUPPO F_GRUPPOINI
INPUT CONTO F_CONTOINI_FORN
DISPLAY "Gruppo" GRUPPO
@ -149,7 +149,7 @@ BEGIN
WARNING "Conto inesistente o mancante"
MESSAGE DIRTY,F_SOTTOCINI_FORN
MESSAGE COPY,F_CONTOINI_CONTO
GROUP 3 9
GROUP 3 9
END
NUMBER F_SOTTOCINI_CONTO 6
@ -214,7 +214,6 @@ BEGIN
DISPLAY "Conto" CONTO
DISPLAY "Codice" CODCF
COPY OUTPUT F_SOTTOCINI_CLIENTE
MESSAGE COPY,F_DESCRINI_CONTO
CHECKTYPE NORMAL
GROUP 2 9
END
@ -248,7 +247,6 @@ BEGIN
DISPLAY "Conto" CONTO
DISPLAY "Codice" CODCF
COPY OUTPUT F_SOTTOCINI_FORN
MESSAGE COPY,F_DESCRINI_CONTO
CHECKTYPE NORMAL
GROUP 3 9
END
@ -291,7 +289,7 @@ END
NUMBER F_CONTOFINE_CLIENTE 3
BEGIN
PROMPT 41 8 ""
USE LF_PCON SELECT (TMCF="C") // && (CONTO!="") && (SOTTOCONTO="")
USE LF_PCON SELECT TMCF="C"
INPUT GRUPPO F_GRUPPOFINE
INPUT CONTO F_CONTOFINE_CLIENTE
DISPLAY "Gruppo" GRUPPO
@ -310,7 +308,7 @@ END
NUMBER F_CONTOFINE_FORN 3
BEGIN
PROMPT 41 8 ""
USE LF_PCON SELECT (TMCF="F") // && (CONTO!="") && (SOTTOCONTO="")
USE LF_PCON SELECT TMCF="F"
INPUT GRUPPO F_GRUPPOFINE
INPUT CONTO F_CONTOFINE_FORN
DISPLAY "Gruppo" GRUPPO
@ -638,7 +636,6 @@ BEGIN
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPOINI GRUPPO
OUTPUT F_CONTOINI_CONTO CONTO
// OUTPUT F_DESCRINI_CONTO DESCR
CHECKTYPE NORMAL
WARNING "Conto inesistente o mancante"
MESSAGE DIRTY,F_SOTTOCINI_CONTO
@ -674,7 +671,6 @@ BEGIN
DISPLAY "Conto" CONTO
DISPLAY "Codice" CODCF
COPY OUTPUT F_SOTTOCINI_CLIENTE
MESSAGE COPY,F_DESCRINI_CONTO
CHECKTYPE NORMAL
GROUP 2
END
@ -707,7 +703,6 @@ BEGIN
DISPLAY "Conto" CONTO
DISPLAY "Codice" CODCF
COPY OUTPUT F_SOTTOCINI_FORN
MESSAGE COPY,F_DESCRINI_CONTO
CHECKTYPE NORMAL
GROUP 3
END
@ -832,7 +827,6 @@ BEGIN
DISPLAY "Conto" CONTO
OUTPUT F_SOTTOCFINE_CLIENTE CODCF
OUTPUT F_DESCRFINE_CLIENTE RAGSOC
FLAGS "R"
GROUP 5
MESSAGE COPY,F_SOTTOCFINE_CONTO
END
@ -904,7 +898,6 @@ BEGIN
OUTPUT F_CONTOFINE_CONTO CONTO
OUTPUT F_DESCRFINE_CONTO DESCR
CHECKTYPE NORMAL
FLAGS "R"
WARNING "Sottoconto inesistente o mancante"
GROUP 4
END
@ -914,7 +907,7 @@ BEGIN
PROMPT 1 5 "Descrizione "
// FIELD LF_PCON->DESCR
USE LF_PCON KEY 2
INPUT DESCR F_DESCRINI_CONTO
INPUT DESCR F_DESCRFINE_CONTO
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO

View File

@ -15,12 +15,12 @@ BEGIN
PROMPT 3 4 "tempo. Siate certi di voler proseguire."
END
BUTTON DLG_OK 9 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 "Conferma"
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END

View File

@ -9,7 +9,7 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 2 3 "Il ricalcolo degli saldi puo' richiedere"
PROMPT 2 3 "Il ricalcolo dei saldi puo' richiedere"
END
TEXT DLG_NULL
@ -34,12 +34,12 @@ BEGIN
END
BUTTON DLG_OK 9 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 "Conferma"
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END

View File

@ -556,7 +556,11 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
real esenti_b2 = 0.0;
real esenti_b3 = 0.0;
real esenti_b4 = 0.0;
real esenti_b14 = 0.0;
real esenti_b14 = 0.0;
real vendite_vp1 = 0.0;
real vendite_vp2 = 0.0;
real acquisti_vp3 = 0.0;
real acquisti_vp4 = 0.0;
real esni_rimb = 0.0; // ci sommo tutti esenti e ni validi per rimborso
real corr_CEE = 0.0;
real corr_noCEE = 0.0;
@ -712,6 +716,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
const tipo_sospensione sosp_imp = _reg->get_bool("B1") ? (tipo_sospensione) _reg->get_int("I9") : nessuna;
const TRectype& rcs = _cur->curr(LF_CAUSALI);
const bool fattrit = rcs.get_bool("RITFATT");
const bool cau_intra = rcs.get_bool("INTRACOM");
const bool cau_valintra = rcs.get_bool("VALINTRA");
if (dok || sreg || rs8 || cmt) continue;
@ -756,10 +762,11 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
real nin_imp = 0.0; // imponibile non incassati
real nin_iva = 0.0; // imposta non incassati
TString codiva = _iva->get("CODTAB");
TString tipoiva = _iva->get("S1");
TString tipoes_v = _iva->get("S2");
TString tipoes_a = _iva->get("S9");
TString16 codiva = _iva->get("CODTAB");
TString16 tipoiva = _iva->get("S1");
TString16 tipoes_v = _iva->get("S2");
TString16 tipoes_a = _iva->get("S9");
TString16 iva_vpn = _iva->get(tipomov == vendita ? "S10" : "S11");
int tipoagr = atoi(_iva->get("S4"));
int tipoag = atoi(_iva->get("S5"));
int tipopla = atoi(_iva->get("S3"));
@ -798,6 +805,28 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
// Filling dell'array per IVA11
if (_is_interactive && month == 13)
iva11_set_arr_phase_1(trueatt);
// Cumula l'ammontare delle operazioni attive/passive
// per la dichiarazione periodica
if (iva_vpn.not_empty() && !fattrit)
switch (tipomov)
{
case vendita: // VP1 o VP2
if (!corrisp)
{
vendite_vp1 += imponibile;
if (cau_valintra && iva_vpn == "VP2")
vendite_vp2 += imponibile;
}
break;
case acquisto: // VP3 o VP4
acquisti_vp3 += imponibile;
if (cau_intra && iva_vpn == "VP4")
acquisti_vp4 += imponibile;
break;
default:
break;
}
if (noninc) // non incassati: non devono entrare in nessun altro calcolo
{
@ -1686,6 +1715,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
_pum->put("R13", esenti_b4);
_pum->put("R7", esenti_b14);
_pum->put("R12", esni_rimb);
_pum->put("R14", vendite_vp1);
_pum->put("R15", vendite_vp2);
_pum->put("R16", acquisti_vp3);
_pum->put("R17", acquisti_vp4);
_pam->put("R0", acquisti);
_pam->put("R1", vendite);
_pam->put("R6", assp_imp);

View File

@ -104,6 +104,17 @@ void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
vaf += imponibile;
_pam->put("R1", vaf);
_pam->rewrite();
// Aggiorna il totale IVA periodica VP1
if (look_iva(ci->_codiva))
{
if (_iva->get("S10").not_empty()) // Solo VP1 ha senso coi corrispettivi... se c'è VP2 lo consideriamo in VP1
{
real vp1 = _pum->get_real("R14");
vp1 += imponibile;
_pum->put("R14", vp1);
_pum->rewrite();
}
}
}
}
@ -333,6 +344,18 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
vaf += imponibile;
_pam->put("R1", vaf);
_pam->rewrite();
// Aggiorna il totale IVA periodica VP1
if (look_iva(vv->_codiva))
{
if (_iva->get("S10").not_empty()) // Solo VP1 ha senso coi corrispettivi... se c'è VP2 lo consideriamo in VP1
{
real vp1 = _pum->get_real("R14");
vp1 += imponibile;
_pum->put("R14", vp1);
_pum->rewrite();
}
}
// Aggiorno i luridi pim
bool was = look_pim(month, codatt, vi->_codreg, "0", vv->_codiva, vi->_tipodet, TRUE);

View File

@ -2134,7 +2134,7 @@ void TLiquidazione_app::set_ventila(_DescrItem& d)
_vDesc& vd = (_vDesc&)d._arr[i];
look_iva(vd._codiva);
TString s0 = _iva->get("S0");
set_row(row+i,"@8g%5s@17g%s@41g%r@68g%r@89g%r",
set_row(row+i,"@8g%5s@17g%-23s@41g%r@68g%r@89g%r",
(const char*)vd._codiva,
(const char*)s0,
&(vd._acq),

View File

@ -3,6 +3,7 @@
// Usurpatore di Liberta'...
// Nemico ed Oscuro Messo di Malvagita'...
#include <currency.h>
#include <os_dep.h>
#include "cg4.h"
#include "cg4400.h"
@ -35,6 +36,7 @@ inline TStampa_registri_app& app() { return (TStampa_registri_app&)main_app(); }
#define RIGHE_FOOTER 1 // Righe da saltare nel footer per evitare di scrivere sulla perforazione
bool TStampa_registri_app::filter_func (const TRelation * r)
{
TLocalisamfile& mov = r->lfile(LF_MOV);
@ -3251,6 +3253,8 @@ void TStampa_registri_app::send_message(char tipo, const TFilename& nome, int me
TExternal_app pn(app);
pn.run();
os_sleep(1000);
}
bool TStampa_registri_app::set_print(int n)

View File

@ -58,7 +58,7 @@ public:
bool TAp_eser::mask_newanno (TMask_field& f, KEY k)
{
if ( (k == K_ENTER) && f.to_check(k) )
if (k == K_ENTER)
{
int newanno = f.mask().get_int(F_NUOVOANNO);
int anno = f.mask().get_int(F_ANNO);
@ -67,7 +67,8 @@ bool TAp_eser::mask_newanno (TMask_field& f, KEY k)
TabEs.put ("CODTAB", codtab);
if (TabEs.read() == NOERR)
{
f.warning_box ("Il codice inserito e' gia' presente nella tabella degli esercizi!");
f.warning_box ("Il codice %s e' gia' presente nella tabella degli esercizi!",
(const char*)codtab);
return FALSE;
}
}

View File

@ -10,12 +10,9 @@ bool TAp_iva::mask_annoiva (TMask_field& f, KEY k)
{
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;
}
int annoivap = conf.get_int("AnLiIv");
if (annoivap > 0 && annoiva != annoivap + 1)
return f.error_box("Il nuovo anno esercizio IVA deve essere %d", (annoivap+1));
}
return TRUE;
}
@ -51,7 +48,7 @@ bool TAp_iva::apertura_iva()
TDate data;
bool ok = FALSE;
int annop = atoi(_annop);
int annop = _annop;
annoiva.format("%04d", _annoiva);
//viene aggiornata la tabella LIA (liquidazione iva annuale)
@ -223,8 +220,10 @@ void TAp_iva::main_loop()
TMask msk ("cg4500b");
TConfig conf(CONFIG_DITTA);
_annop = conf.get("AnLiIv");
int aivap = atoi(_annop);
_annop = conf.get_int("AnLiIv");
if (_annop <= 0)
_annop = TDate(TODAY).year() - 1;
int aivap = _annop;
int anno = aivap+1;
_is_minagr = FALSE;
@ -256,7 +255,7 @@ void TAp_iva::main_loop()
}
}
msk.set(F_ANNOIVA, aivap+1);
msk.set(F_ANNOIVA, anno);
msk.set_handler (F_ANNOIVA, mask_annoiva);

View File

@ -15,7 +15,7 @@ class TAp_iva : public TSkeleton_application
TTable* _reg, * _lia, * _lbu;
TLocalisamfile* _nditte;
int _annoiva;
TString _annop;
int _annop;
long _ditta;
char _frequenza;
bool _is_minagr;

View File

@ -9,19 +9,21 @@ int main(int argc,char** argv)
switch (n)
{
case 1:
cg5100(argc,argv) ; break;
cg5100(argc,argv); break; // Parametri ditta
case 2:
cg5200(argc,argv) ; break;
cg5200(argc,argv); break; // Visualizzazione saldi
case 3:
cg5300(argc,argv) ; break;
cg5300(argc,argv); break; // Parametri liquidazione
case 4:
cg5400(argc,argv) ; break;
cg5400(argc,argv); break; // Ripristino stampe
case 5:
cg5500(argc,argv) ; break;
cg5500(argc,argv); break; // Visualizzazione Liquidazione
case 6:
cg5600(argc,argv) ; break;
cg5600(argc,argv); break; // Ripristino liquidazione
case 7:
cg5700(argc,argv); break; // Dichiarazione periodica
default:
cg5000(argc,argv) ; break;
cg5000(argc,argv); break; // Parametri Studio
}
exit(0);
return 0;

View File

@ -5,3 +5,4 @@ int cg5300 (int argc, char* argv[]);
int cg5400 (int argc, char* argv[]);
int cg5500 (int argc, char* argv[]);
int cg5600 (int argc, char* argv[]);
int cg5700 (int argc, char* argv[]);

View File

@ -1,4 +1,5 @@
#include <browfile.h>
#include <currency.h>
#include <prefix.h>
#include <msksheet.h>
#include <mailbox.h>
@ -12,6 +13,16 @@
#include "cg5500.h"
#include "cg5500a.h"
static const TString& print_value(const real& r)
{
static TString s;
const TCurrency c(r);
s = c.string(TRUE);
s.right_just(15);
return s;
}
const char* Visliq_app::itoname(int m)
{
const char* mn;
@ -913,21 +924,22 @@ void Visliq_app::recalc_liq_data(TViswin & vsw, real& rimb, real& rett, real& ve
lvers = lrisc+1l;
// ... seguita da una sburlata di replace
vsw.replace(lrimb, rimb.string("###.###.###.###"), 75);
vsw.replace(lrisd, risdb.string("###.###.###.###"), 75);
vsw.replace(lrisc, riscr.string("###.###.###.###"), 58);
vsw.replace(lacct, acc.string("###.###.###.###"), 58);
vsw->replace(lrimb, print_value(rimb), 75);
vsw->replace(lrisd, print_value(risdb), 75);
vsw->replace(lrisc, print_value(riscr), 58);
vsw->replace(lacct, print_value(acc), 58);
if (rett.sign() > 0)
{
vsw.replace(lrettd, rett.string("###.###.###.###"), 75);
vsw.replace(lrettc, " ", 58);
vsw->replace(lrettd, print_value(rett), 75);
vsw->replace(lrettc, " ", 58);
}
else if (rett.sign() < 0)
{
real rabs = abs(rett);
vsw.replace(lrettc, rabs.string("###.###.###.###"), 58);
vsw.replace(lrettd, " ", 75);
vsw->replace(lrettc, print_value(rabs), 58);
vsw->replace(lrettd, " ", 75);
}
else
{
@ -939,7 +951,7 @@ void Visliq_app::recalc_liq_data(TViswin & vsw, real& rimb, real& rett, real& ve
{
real rabs = abs(risul);
ln.overwrite("CREDITO ATTUALE", 23);
ln.overwrite(rabs.string("###.###.###.###"), 58);
ln.overwrite(print_value(rabs), 58);
if (lintr > 0) // Quindi niente riga "Interessi " ...
{
vsw.replace(lintr," ",23);
@ -971,18 +983,20 @@ void Visliq_app::recalc_liq_data(TViswin & vsw, real& rimb, real& rett, real& ve
vsw.replace(livdv, "IVA DOVUTA", 23);
}
if (lintr > 0)
vsw.replace(lintr, intr.string("###.###.###.###"), 75);
{
vsw->replace(lintr, print_value(intr), 75);
}
if (livdv > 0)
{
vsw.replace(livdv, risul.string("###.###.###.###"), 75);
vsw->replace(livdv, print_value(risul), 75);
risul += intr;
}
}
ln.overwrite("IVA DA VERSARE", 23);
ln.overwrite(risul.string("###.###.###.###"), 75);
ln.overwrite(print_value(risul), 75);
}
vsw.replace(lvers, ln, 0);
vsw.replace(lrivr, vers.string("###.###.###.###"), 58);
vsw->replace(lvers, ln, 0);
vsw->replace(lrivr, print_value(vers), 58);
vsw.refresh();
}

View File

@ -65,6 +65,7 @@ protected:
static bool vers_action(TSheet_field& s, int r, KEY k);
public:
virtual bool firm_change_enabled() const { return FALSE; }
static Visliq_app& app() { return (Visliq_app&)main_app(); }
TArray_sheet* get_ditte_sheet() { return _ditte; }

559
cg/cg5700.cpp Executable file
View File

@ -0,0 +1,559 @@
// Programma per la gestione e la stampa della dichiarazione periodica IVA
#include <applicat.h>
#include <automask.h>
#include <currency.h>
#include <form.h>
#include <prefix.h>
#include <sheet.h>
#include <tabutil.h>
#include <utility.h>
#include <urldefid.h>
#include <nditte.h>
#include "cg5700.h"
class TDich_periodica_selfirm_mask : public TAutomask
{
TArray_sheet * _ditte;
TString_array _nomiditte;
TString16 _freq;
int _year;
protected:
bool select_button();
void build_nomiditte();
void build_ditte_sheet();
void set_mask_freq();
public:
const TString& get_freq() const { return _freq;}
const int get_year() const { return _year;}
const int get_period() const { return atoi(get(_freq == "M" ? F_MONTHS : F_TRIMS)); }
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
TDich_periodica_selfirm_mask();
virtual ~TDich_periodica_selfirm_mask();
};
TDich_periodica_selfirm_mask::TDich_periodica_selfirm_mask() : TAutomask("cg5700a")
{
_ditte = new TArray_sheet(-1, -1, -4, -4, "Selezione Ditte",
"Cod.@5|Ragione Sociale@50|Vers.");
TDate oggi(TODAY);
_year = oggi.year();
_freq = "M";
set_mask_freq();
build_nomiditte();
build_ditte_sheet();
}
TDich_periodica_selfirm_mask::~TDich_periodica_selfirm_mask()
{
delete _ditte;
}
void TDich_periodica_selfirm_mask::build_nomiditte()
{
TString fr(2);
TLocalisamfile dt(LF_NDITTE);
TTable lia("%LIA");
_nomiditte.destroy();
for (dt.first(); !dt.eof(); dt.next())
{
fr = "??";
bool good = prefix().exist(dt.get_long("CODDITTA"));
if (good)
{
lia.put("CODTAB", format("%05ld%d",dt.get_long("CODDITTA"),_year));
if (lia.read() != NOERR)
good = FALSE;
else
fr = lia.get("S7");
}
else continue;
TToken_string* d = new TToken_string(64);
d->add(dt.get("CODDITTA"));
d->add(dt.get("RAGSOC"));
d->add(fr);
_nomiditte.add(d);
}
}
void TDich_periodica_selfirm_mask::build_ditte_sheet()
{
_ditte->destroy();
long prima = -1;
for (int i = 0; i < _nomiditte.items(); i++)
{
TToken_string* d = new TToken_string(_nomiditte.row(i));
const long pos = _ditte->add(d);
const char vers = d->get_char(2);
const bool selectable = vers != '?';
_ditte->enable_row(pos, selectable);
if (selectable && prima < 0)
_ditte->select(prima = pos);
}
}
void TDich_periodica_selfirm_mask::set_mask_freq()
{
if (_freq == "M")
{
show(F_MONTHS);
hide(F_TRIMS);
}
else
{
hide(F_MONTHS);
show(F_TRIMS);
}
}
bool TDich_periodica_selfirm_mask::select_button()
{
if (_ditte->run() == K_ENTER)
{
TToken_string& row = _ditte->row(_ditte->selected());
set(F_CODDITTA, row.get(0));
set(F_RAGSOC, row.get(1));
_freq = row.get(2);
set_mask_freq();
return TRUE;
}
return FALSE;
}
bool TDich_periodica_selfirm_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_CODDITTA:
if (e == fe_button)
return select_button();
if (e == fe_modify)
{
bool found = FALSE;
TString16 ditta = o.get();
for (int i = 0; i < _ditte->items(); i++)
{
TToken_string& row = _ditte->row(i);
if (ditta == row.get(0))
{
if (_ditte->row_enabled(i))
{
set(F_CODDITTA, row.get(0));
set(F_RAGSOC, row.get(1));
_freq = row.get(2);
set_mask_freq();
found = TRUE;
}
else
{
warning_box("Non sono definiti i parametri liquidazione per la ditta %ld",
atol(ditta));
o.reset();
}
break;
}
}
if (!found)
o.reset();
return found;
}
break;
case F_RAGSOC:
if (e == fe_button)
return select_button();
if (e == fe_modify)
{
bool found = FALSE;
TString16 ditta = o.get();
for (int i = 0; i < _ditte->items(); i++)
{
TToken_string& row = _ditte->row(i);
TString ts(row.get(1));
if (ts.find(ditta) != -1)
{
if (_ditte->row_enabled(i))
{
set(F_CODDITTA, row.get(0));
set(F_RAGSOC, row.get(1));
_freq = row.get(2);
set_mask_freq();
found = TRUE;
break;
}
}
}
if (!found) o.reset();
return found;
}
break;
case F_YEAR:
if (e == fe_modify)
{
_year = atoi(o.get());
build_nomiditte();
build_ditte_sheet();
set(F_CODDITTA, "");
set(F_RAGSOC, "");
}
break;
default:
break;
}
return TRUE;
}
class TDich_periodica_iva_mask : public TAutomask
{
TDich_periodica_selfirm_mask * _sf;
bool _dirty_versament, // Sporco versamento...
_is_euro; // importi in euro
protected:
void search_versament();
void write_versament();
void read_iva_data();
public:
void set_prospect();
void print_prospect();
virtual bool on_key(KEY k);
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
TDich_periodica_iva_mask(TDich_periodica_selfirm_mask *m);
virtual ~TDich_periodica_iva_mask() {};
};
TDich_periodica_iva_mask::TDich_periodica_iva_mask(TDich_periodica_selfirm_mask *m) : TAutomask("cg5700b")
{
_sf = m;
}
void TDich_periodica_iva_mask::search_versament()
{
TTable del("%DEL");
TString key;
key.format("%05ld%4d%02d1", _sf->get_long(F_CODDITTA), _sf->get_year(), _sf->get_period());
del.put("CODTAB", key);
// Se esiste il versamento la visualizza, mantenendola disabilitata (eventuale SHIFT+F12)
if (del.read() == NOERR)
{
set(F_VP12_IMPORTO, del.get_real("R0"));
set(F_VP12_DATA, del.get_date("D0"));
set(F_VP12_ABI, del.get("S7"));
set(F_VP12_CAB, del.get("S8"));
set(F_VP12_CONCESSIONE, del.get("S9"));
set(F_VP12_STAMPATO, del.get_bool("B0"));
}
else
enable(-G_VP12);
}
void TDich_periodica_iva_mask::write_versament()
{
TTable del("%DEL");
TString key;
key.format("%05ld%4d%02d1", _sf->get_long(F_CODDITTA), _sf->get_year(), _sf->get_period());
del.put("CODTAB", key);
const bool good = del.read() == NOERR;
del.put("R0", get(F_VP12_IMPORTO));
del.put("D0", get(F_VP12_DATA));
del.put("S7", get(F_VP12_ABI));
del.put("S8", get(F_VP12_CAB));
del.put("S9", get(F_VP12_CONCESSIONE));
del.put("B0", TRUE);
if (good)
del.rewrite();
else
del.write();
}
void TDich_periodica_iva_mask::read_iva_data()
{
TTable lim("LIM");
TTable lam("LAM");
TString16 key;
key.format("%4d%02d", _sf->get_year(), _sf->get_period());
lim.put("CODTAB", key);
lam.put("CODTAB", key);
const bool good = lim.read() == NOERR;
if (good && lim.get_bool("B0"))
{
lam.read();
TString descrizione(lim.get("S0"));
descrizione << lim.get("S1");
const bool exclude_sign = descrizione.find("$$") >= 0 || descrizione.find(">>") >= 0;
real vp1 = ZERO;
real vp2 = ZERO;
real vp3 = ZERO;
real vp4 = ZERO;
TTable pum("PUM");
key.format("%4d",_sf->get_year());
pum.put("CODTAB", key);
for (pum.first(); !pum.eof(); pum.next())
{
key = pum.get("CODTAB");
const int anno = atoi(key.mid(0,4));
const int perd = atoi(key.mid(10,2));
if (anno != _sf->get_year() || perd != _sf->get_period())
continue;
vp1 += pum.get_real("R14");
vp2 += pum.get_real("R15");
vp3 += pum.get_real("R16");
vp4 += pum.get_real("R17");
}
// Se espressi in lire o una valuta con 0 decimali, arrotonda alle 1000
TCurrency cur(vp1, get(F_CODVAL));
const int ndec = cur.decimals() == 0 ? -3 : cur.decimals();
real rettifica = lim.get_real("R5");
real vp5 = lam.get_real("R0");
if (rettifica > ZERO)
vp5 += rettifica;
real vp6 = lam.get_real("R1");
if (rettifica < ZERO && !exclude_sign)
vp6 += abs(rettifica);
real vp7 = lam.get_real("R2") + lim.get_real("R1");
real vp8 = ZERO;
if (rettifica < ZERO && exclude_sign)
vp8 = abs(rettifica);
real vp9 = lim.get_real("R14");
vp1.round(ndec); vp2.round(ndec); vp3.round(ndec); vp4.round(ndec);
vp5.round(ndec); vp6.round(ndec); vp7.round(ndec); vp8.round(ndec);
vp9.round(ndec);
// I seguenti vengono giusti ed arrotondati bene di conseguenza
real vp10 = vp5 - (vp6+vp7+vp8) + vp9;
real vp11 = (vp6+vp7) - vp5;
if (vp10 < ZERO)
vp10 = ZERO;
if (vp11 < ZERO)
vp11 = ZERO;
set(F_VP1, vp1);set(F_VP2, vp2);set(F_VP3, vp3);set(F_VP4, vp4);
set(F_VP5, vp5);set(F_VP6, vp6);set(F_VP7, vp7);set(F_VP8, vp8);
set(F_VP9, vp9);set(F_VP10, vp10);set(F_VP11, vp11);
}
else
error_box("Risultati liquidazione non presenti o da ricalcolare per il periodo richiesto.");
}
void TDich_periodica_iva_mask::print_prospect()
{
if (_dirty_versament)
write_versament();
TForm frm("cg5700a");
frm.find_field('B', odd_page, FF_CODVAL).set(get(F_CODVAL));
frm.find_field('B', odd_page, FF_YEAR).set(get(F_YEAR));
const bool mens = _sf->get_freq() == "M";
TForm_item& sf1 = frm.find_field('B', odd_page, FF_MONTHS);
TForm_item& sf2 = frm.find_field('B', odd_page, FF_TRIMS);
sf1.set(get(F_MONTHS));
sf2.set(get(F_TRIMS));
sf1.show(mens);
sf2.show(!mens);
frm.find_field('B', odd_page, FF_IMPORTI).set(_is_euro ? "1" : " ");
frm.find_field('B', odd_page, FF_VP1).set(get(F_VP1));
frm.find_field('B', odd_page, FF_VP2).set(get(F_VP2));
frm.find_field('B', odd_page, FF_VP3).set(get(F_VP3));
frm.find_field('B', odd_page, FF_VP4).set(get(F_VP4));
frm.find_field('B', odd_page, FF_VP5).set(get(F_VP5));
frm.find_field('B', odd_page, FF_VP6).set(get(F_VP6));
frm.find_field('B', odd_page, FF_VP7).set(get(F_VP7));
frm.find_field('B', odd_page, FF_VP8).set(get(F_VP8));
frm.find_field('B', odd_page, FF_VP9).set(get(F_VP9));
frm.find_field('B', odd_page, FF_VP10).set(get(F_VP10));
frm.find_field('B', odd_page, FF_VP11).set(get(F_VP11));
// Se è stato creato il versamento ora o se è stato giò stampato
// allora lo stampa, altrimenti lo nasconde.
const bool b = _dirty_versament || get_bool(F_VP12_STAMPATO);
frm.find_field('B', odd_page, FF_VP12_STAMPATO).set(b ? "X" : " "); //Mostra nasconde il gruppo 12
if (b)
{
frm.find_field('B', odd_page, FF_VP12_IMPORTO).set(get(F_VP12_IMPORTO));
frm.find_field('B', odd_page, FF_VP12_DATA).set(get(F_VP12_DATA));
frm.find_field('B', odd_page, FF_VP12_CONCESSIONE).set(get(F_VP12_CONCESSIONE));
frm.find_field('B', odd_page, FF_VP12_ABI).set(get(F_VP12_ABI));
frm.find_field('B', odd_page, FF_VP12_CAB).set(get(F_VP12_CAB));
}
TRectype f(LF_NDITTE);
f.put(NDT_CODDITTA, get(F_CODDITTA));
TRectype t(f);
frm.cursor()->setregion(f,t);
frm.print();
}
void TDich_periodica_iva_mask::set_prospect()
{
CHECK(_sf, "Invalid mask");
_dirty_versament = FALSE;
set(F_YEAR, _sf->get_year());
set(F_CODDITTA, _sf->get(F_CODDITTA));
set(F_RAGSOC, _sf->get(F_RAGSOC));
const TString& f = _sf->get_freq();
show(F_MONTHS, f == "M");
show(F_TRIMS, f == "T");
set(F_MONTHS, _sf->get(F_MONTHS));
set(F_TRIMS, _sf->get(F_TRIMS));
TFirm frm(_sf->get_long(F_CODDITTA));
const TString& cv = frm.codice_valuta();
_is_euro = cv == TCurrency::get_euro_val();
set(F_CODVAL, cv);
search_versament();
read_iva_data();
}
bool TDich_periodica_iva_mask::on_key(KEY k)
{
if (k == K_SHIFT + K_F12) // Abilita i campi relativi al versamento
enable(-G_VP12);
return TAutomask::on_key(k);
}
bool TDich_periodica_iva_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_VP12_DATA:
case F_VP12_CONCESSIONE:
case F_VP12_ABI:
case F_VP12_CAB:
if (e == fe_modify)
_dirty_versament = TRUE;
break;
case F_VP12_IMPORTO:
if (e == fe_modify)
{
_dirty_versament = TRUE;
real r(o.get());
TCurrency cur(r, get(F_CODVAL));
const int ndec = cur.decimals(); // Decimali di questa valuta per gli importi
// Arrotondamento alle migliaia nel caso il numero
// di decimali della ditta sia zero (come per le lire)
// altrimenti al numero di decimali impostato
r.round(ndec == 0 ? -3 : ndec);
o.set(r.string());
}
break;
default:
break;
}
return TRUE;
}
class TDich_periodica_iva_app : public TSkeleton_application
{
TDich_periodica_selfirm_mask * _m1;
TDich_periodica_iva_mask * _m2;
protected:
virtual bool create();
virtual bool destroy();
virtual void main_loop();
public:
virtual bool firm_change_enabled() const { return FALSE; }
TDich_periodica_iva_app () {};
virtual ~TDich_periodica_iva_app () {};
};
bool TDich_periodica_iva_app::create()
{
_m1 = new TDich_periodica_selfirm_mask();
_m2 = new TDich_periodica_iva_mask(_m1);
open_files(LF_NDITTE, 0);
return TSkeleton_application::create();
}
bool TDich_periodica_iva_app::destroy()
{
delete _m2;
delete _m1;
return TSkeleton_application::destroy();
}
void TDich_periodica_iva_app::main_loop()
{
long ditta = get_firm();
while (_m1->run() != K_QUIT)
{
if (_m1->get(F_CODDITTA).empty() || _m1->get(F_RAGSOC).empty())
{
beep();
continue;
}
set_firm(_m1->get_long(F_CODDITTA));
_m2->reset();
_m2->enable_default();
_m2->set_prospect();
if (_m2->run() == K_ENTER)
_m2->print_prospect();
}
set_firm(ditta);
}
int cg5700 (int argc, char* argv[])
{
TDich_periodica_iva_app a;
a.run(argc, argv, "Dichiarazione periodica");
return 0;
}

55
cg/cg5700.h Executable file
View File

@ -0,0 +1,55 @@
#define F_YEAR 101
#define F_CODDITTA 102
#define F_RAGSOC 103
#define F_MONTHS 104
#define F_TRIMS 105
#define F_CODVAL 106
#define F_VP1 107
#define F_VP2 108
#define F_VP3 109
#define F_VP4 110
#define F_VP5 111
#define F_VP6 112
#define F_VP7 113
#define F_VP8 114
#define F_VP9 115
#define F_VP10 116
#define F_VP11 117
#define F_VP12_DATA 118
#define F_VP12_IMPORTO 119
#define F_VP12_ABI 120
#define F_VP12_CAB 121
#define F_VP12_CONCESSIONE 122
#define F_VP12_STAMPATO 123
#define G_VP12 1
#define FF_YEAR 101
#define FF_CODDITTA 102
#define FF_RAGSOC 103
#define FF_MONTHS 104
#define FF_TRIMS 105
#define FF_CODVAL 106
#define FF_VP1 107
#define FF_VP2 108
#define FF_VP3 109
#define FF_VP4 110
#define FF_VP5 111
#define FF_VP6 112
#define FF_VP7 113
#define FF_VP8 114
#define FF_VP9 115
#define FF_VP10 116
#define FF_VP11 117
#define FF_VP12_DATA 118
#define FF_VP12_IMPORTO 119
#define FF_VP12_ABI 120
#define FF_VP12_CAB 121
#define FF_VP12_CONCESSIONE 122
#define FF_VP12_STAMPATO 123
#define FF_COFI 124
#define FF_PAIVA 125
#define FF_IMPORTI 126
#define GF_VP12 1

317
cg/cg5700a.frm Executable file
View File

@ -0,0 +1,317 @@
#include "cg5700.h"
USE LF_NDITTE
JOIN LF_ANAG TO LF_NDITTE INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN LF_ANAGFIS TO LF_ANAG ALIAS 18 INTO CODANAGR=CODANAGR
JOIN LF_ANAGGIU TO LF_ANAG INTO CODANAGR=CODANAGR
END
DESCRIPTION
BEGIN
9->* "Ditte"
6->* "Anagrafica persone fisiche e giuridiche"
8->* "Anagrafica persone fisiche"
7->* "Anagrafica persone giuridiche"
END
GENERAL
BEGIN
OFFSET 0 0
END
SECTION BODY ODD 50
STRINGA 1 40
BEGIN
KEY "Titolo"
PROMPT 30 1 "@BDICHIARAZIONE IVA PERIODICA"
END
STRINGA 2 10
BEGIN
KEY "Data"
PROMPT 65 1 "Data "
MESSAGE _TODAY
END
NUMERO FF_CODDITTA 6
BEGIN
KEY "Codice ditta"
PROMPT 2 3 "Ditta "
FIELD LF_NDITTE->CODDITTA
PICTURE "@@@@@"
END
STRINGA FF_RAGSOC 50
BEGIN
KEY "Ragione sociale"
PROMPT 18 3 ""
FIELD LF_NDITTE->RAGSOC
END
STRINGA 3
BEGIN
KEY "Codice fiscale - descrizione"
PROMPT 2 4 "Codice fiscale:"
END
STRINGA FF_COFI
BEGIN
KEY "Codice fiscale - valore"
PROMPT 18 4 ""
FIELD LF_ANAG->COFI
END
STRINGA 4
BEGIN
KEY "Partita IVA - descrizione"
PROMPT 2 5 "Partita IVA: "
END
STRINGA FF_PAIVA
BEGIN
KEY "Partita IVA - valore"
PROMPT 18 5 ""
FIELD LF_ANAG->PAIV
END
NUMERO FF_YEAR 6
BEGIN
KEY "Anno"
PROMPT 2 6 "Anno: "
END
LISTA FF_MONTHS 15
BEGIN
KEY "Mesi"
PROMPT 18 6 "Periodo: "
ITEM "1|Gennaio"
ITEM "2|Febbraio"
ITEM "3|Marzo"
ITEM "4|Aprile"
ITEM "5|Maggio"
ITEM "6|Giugno"
ITEM "7|Luglio"
ITEM "8|Agosto"
ITEM "9|Settembre"
ITEM "10|Ottobre"
ITEM "11|Novembre"
ITEM "12|Dicembre"
END
LISTA FF_TRIMS 15
BEGIN
KEY "Trimestri"
PROMPT 18 6 "Periodo: "
ITEM "3|1° Trimestre"
ITEM "6|2° Trimestre"
ITEM "9|3° Trimestre"
ITEM "12|4° Trimestre"
END
STRING FF_CODVAL 3
BEGIN
KEY "Codice valuta"
PROMPT 60 4 ""
FLAGS "H"
END
LISTA FF_IMPORTI 21
BEGIN
KEY "Importi espressi in"
PROMPT 2 8 "Importi espressi in "
ITEM " |lire"
ITEM "1|euro"
END
STRINGA 5
BEGIN
KEY "VP1 - Descrizione"
PROMPT 2 10 "VP1 - Ammontare complessivo delle operazioni attive"
END
VALUTA FF_VP1 18
BEGIN
KEY "VP1 - Valore"
PROMPT 60 10 ""
DRIVENBY FF_CODVAL
END
STRINGA 6
BEGIN
KEY "VP2 - Descrizione"
PROMPT 2 11 "VP2 - di cui cessioni intracomunitarie"
END
VALUTA FF_VP2 18
BEGIN
KEY "VP2 - Valore"
PROMPT 60 11 ""
DRIVENBY FF_CODVAL
END
STRINGA 7
BEGIN
KEY "VP3 - Descrizione"
PROMPT 2 12 "VP3 - Ammontare complessivo delle operazioni passive"
END
VALUTA FF_VP3 18
BEGIN
KEY "VP3 - Valore"
PROMPT 60 12 ""
DRIVENBY FF_CODVAL
END
STRINGA 8
BEGIN
KEY "VP4 - Descrizione"
PROMPT 2 13 "VP4 - di cui acquisti intracomunitari"
END
VALUTA FF_VP4 18
BEGIN
KEY "VP4 - Valore"
PROMPT 60 13 ""
DRIVENBY FF_CODVAL
END
STRINGA 9
BEGIN
KEY "VP5 - Descrizione"
PROMPT 2 14 "VP5 - Ammontare complessivo dell'IVA a debito"
END
VALUTA FF_VP5 18
BEGIN
KEY "VP5 - Valore"
PROMPT 60 14 ""
DRIVENBY FF_CODVAL
END
STRINGA 10
BEGIN
KEY "VP6 - Descrizione"
PROMPT 2 15 "VP6 - Ammontare complessivo dell'IVA che si detrae"
END
VALUTA FF_VP6 18
BEGIN
KEY "VP6 - Valore"
PROMPT 60 15 ""
DRIVENBY FF_CODVAL
END
STRINGA 11
BEGIN
KEY "VP7 - Descrizione"
PROMPT 2 16 "VP7 - IVA a credito del periodo precedente"
END
VALUTA FF_VP7 18
BEGIN
KEY "VP7 - Valore"
PROMPT 60 16 ""
DRIVENBY FF_CODVAL
END
STRINGA 12
BEGIN
KEY "VP8 - Descrizione"
PROMPT 2 17 "VP8 - Crediti d'imposta utilizzati"
END
VALUTA FF_VP8 18
BEGIN
KEY "VP8 - Valore"
PROMPT 60 17 ""
DRIVENBY FF_CODVAL
END
STRINGA 13
BEGIN
KEY "VP9 - Descrizione"
PROMPT 2 18 "VP9 - Interessi dovuti per le liquidazioni trimestrali"
END
VALUTA FF_VP9 18
BEGIN
KEY "VP9 - Valore"
PROMPT 60 18 ""
DRIVENBY FF_CODVAL
END
STRINGA 14
BEGIN
KEY "VP10 - Descrizione"
PROMPT 2 19 "@bVP10 - IVA da versare"
END
VALUTA FF_VP10 18
BEGIN
KEY "VP10 - Valore"
PROMPT 60 19 ""
DRIVENBY FF_CODVAL
END
STRINGA 15
BEGIN
KEY "VP11 - Descrizione"
PROMPT 2 20 "@bVP11 - IVA a credito"
END
VALUTA FF_VP11 18
BEGIN
KEY "VP11 - Valore"
PROMPT 60 20 ""
DRIVENBY FF_CODVAL
END
LISTA FF_VP12_STAMPATO
BEGIN
KEY "Stampato"
PROMPT 0 0 ""
FLAGS "H"
ITEM " | " MESSAGE HIDE,GF_VP12@
ITEM "X| " MESSAGE SHOW,GF_VP12@
END
VALUTA FF_VP12_IMPORTO 18
BEGIN
KEY "Importo"
PROMPT 2 22 "Importo versato "
DRIVENBY FF_CODVAL
GROUP GF_VP12
END
DATA FF_VP12_DATA
BEGIN
KEY "Data versamento"
PROMPT 40 22 "Data versamento "
GROUP GF_VP12
END
STRINGA FF_VP12_CONCESSIONE 17
BEGIN
KEY "Cod. Concessione"
PROMPT 2 23 "Cod. Concessione "
GROUP GF_VP12
END
STRINGA FF_VP12_ABI 10
BEGIN
KEY "Cod. ABI"
PROMPT 40 23 "Cod. ABI "
GROUP GF_VP12
END
STRINGA FF_VP12_CAB 10
BEGIN
KEY "Cod. CAB"
PROMPT 40 24 "Cod. CAB "
GROUP GF_VP12
END
END
END

61
cg/cg5700a.uml Executable file
View File

@ -0,0 +1,61 @@
#include "cg5700.h"
PAGE "Dichiarazione periodica" -1 -1 72 8
NUMBER F_YEAR 4
BEGIN
PROMPT 1 1 "Anno liquidazione "
FLAGS "AR"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 3 "Codice ditta "
FLAGS "B"
END
STRING F_RAGSOC 50 30
BEGIN
PROMPT 28 3 "Rag.soc. "
FLAGS "B"
END
LIST F_MONTHS 30
BEGIN
PROMPT 1 5 "Mese liquidazione "
ITEM "1|Gennaio"
ITEM "2|Febbraio"
ITEM "3|Marzo"
ITEM "4|Aprile"
ITEM "5|Maggio"
ITEM "6|Giugno"
ITEM "7|Luglio"
ITEM "8|Agosto"
ITEM "9|Settembre"
ITEM "10|Ottobre"
ITEM "11|Novembre"
ITEM "12|Dicembre"
END
LIST F_TRIMS 30
BEGIN
PROMPT 1 5 "Trim. liq. "
ITEM "3|1° Trimestre"
ITEM "6|2° Trimestre"
ITEM "9|3° Trimestre"
ITEM "12|4° Trimestre"
FLAGS "H"
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

223
cg/cg5700b.uml Executable file
View File

@ -0,0 +1,223 @@
#include "cg5700.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 ""
MESSAGE EXIT, K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Dichiarazione periodica" -1 -1 78 20
GROUPBOX DLG_NULL 79 4
BEGIN
PROMPT 0 1 "@bDitta corrente"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 2 "Codice "
FLAGS "D"
END
STRING F_RAGSOC 50
BEGIN
PROMPT 16 2 "Rag. Soc. "
FLAGS "D"
END
NUMBER F_YEAR 4
BEGIN
PROMPT 2 3 "Anno "
FLAGS "D"
END
LIST F_MONTHS 30
BEGIN
PROMPT 16 3 "Periodo "
ITEM "1|Gennaio"
ITEM "2|Febbraio"
ITEM "3|Marzo"
ITEM "4|Aprile"
ITEM "5|Maggio"
ITEM "6|Giugno"
ITEM "7|Luglio"
ITEM "8|Agosto"
ITEM "9|Settembre"
ITEM "10|Ottobre"
ITEM "11|Novembre"
ITEM "12|Dicembre"
FLAGS "D"
END
LIST F_TRIMS 30
BEGIN
PROMPT 16 3 "Periodo "
ITEM "3|1° Trimestre"
ITEM "6|2° Trimestre"
ITEM "9|3° Trimestre"
ITEM "12|4° Trimestre"
FLAGS "H"
END
STRING F_CODVAL 3
BEGIN
PROMPT 0 0 ""
FLAGS "H"
END
CURRENCY F_VP1 18
BEGIN
PROMPT 1 5 "VP1 - Ammontare complessivo operazioni attive "
DRIVENBY F_CODVAL
FLAGS "D"
END
CURRENCY F_VP2 18
BEGIN
PROMPT 1 6 "VP2 - Di cui cessioni intracomunitarie "
DRIVENBY F_CODVAL
FLAGS "D"
END
CURRENCY F_VP3 18
BEGIN
PROMPT 1 7 "VP3 - Ammontare complessivo delle operazioni passive "
DRIVENBY F_CODVAL
FLAGS "D"
END
CURRENCY F_VP4 18
BEGIN
PROMPT 1 8 "VP4 - Di cui acquisti intracomunitari "
DRIVENBY F_CODVAL
FLAGS "D"
END
CURRENCY F_VP5 18
BEGIN
PROMPT 1 9 "VP5 - Iva a debito del periodo "
DRIVENBY F_CODVAL
FLAGS "D"
END
CURRENCY F_VP6 18
BEGIN
PROMPT 1 10 "VP6 - Iva a credito del periodo "
DRIVENBY F_CODVAL
FLAGS "D"
END
CURRENCY F_VP7 18
BEGIN
PROMPT 1 11 "VP7 - Iva credito periodo precedente "
DRIVENBY F_CODVAL
FLAGS "D"
END
CURRENCY F_VP8 18
BEGIN
PROMPT 1 12 "VP8 - Crediti d'imposta utilizzati "
DRIVENBY F_CODVAL
FLAGS "D"
END
CURRENCY F_VP9 18
BEGIN
PROMPT 1 13 "VP9 - Interessi "
DRIVENBY F_CODVAL
FLAGS "D"
END
CURRENCY F_VP10 18
BEGIN
PROMPT 1 14 "VP10 - Iva da versare "
DRIVENBY F_CODVAL
FLAGS "D"
END
CURRENCY F_VP11 18
BEGIN
PROMPT 1 15 "VP11 - Iva a credito "
DRIVENBY F_CODVAL
FLAGS "D"
END
GROUPBOX DLG_NULL 79 5
BEGIN
PROMPT 0 16 "@bVP12 - Estremi del versamento"
END
DATE F_VP12_DATA
BEGIN
PROMPT 1 17 "Data "
FLAGS "D"
GROUP G_VP12
END
CURRENCY F_VP12_IMPORTO 18
BEGIN
PROMPT 38 17 "Importo versato "
FLAGS "DR"
DRIVENBY F_CODVAL
GROUP G_VP12
END
NUMBER F_VP12_ABI 5
BEGIN
PROMPT 1 18 "Codice ABI "
FIELD S7
FLAGS "DRZ"
USE %BAN
INPUT CODTAB[1,5] F_VP12_ABI
INPUT CODTAB[6,10] F_VP12_CAB
DISPLAY "Codice ABI" CODTAB[1,5]
DISPLAY "Codice CAB" CODTAB[6,10]
DISPLAY "Descrizione @50" S0
OUTPUT F_VP12_ABI CODTAB[1,5]
OUTPUT F_VP12_CAB CODTAB[6,10]
CHECKTYPE NORMAL
WARNING "Banca assente"
GROUP G_VP12
END
NUMBER F_VP12_CAB 5
BEGIN
PROMPT 38 18 "Codice CAB "
FLAGS "DRZ"
COPY ALL F_VP12_ABI
CHECKTYPE NORMAL
WARNING "Banca assente"
GROUP G_VP12
END
NUMBER F_VP12_CONCESSIONE 3
BEGIN
PROMPT 1 19 "Concessione "
FLAGS "DRZ"
USE %UCC
INPUT CODTAB F_VP12_CONCESSIONE
DISPLAY "Concessione " CODTAB[1,5]
DISPLAY "Descrizione @50" S0
OUTPUT F_VP12_CONCESSIONE CODTAB
CHECKTYPE NORMAL
WARNING "Concessione assente"
GROUP G_VP12
END
BOOLEAN F_VP12_STAMPATO
BEGIN
PROMPT 38 19 "Stampato"
FLAGS "D"
END
ENDPAGE
ENDMASK

View File

@ -9,7 +9,6 @@
#include <prefix.h>
#include <progind.h>
#include <tabutil.h>
#include <urldefid.h>
#include <utility.h>
#include <nditte.h>
@ -92,8 +91,6 @@ _scelta(toupper(ric_trasfer)), _ric_auto(toupper(ric_auto))
bool TRic_archivi::create()
{
TApplication::create();
//_tab_tra = new TTable ("%TRA");
_tras_file = new TTransfer_file(_scelta);
@ -116,9 +113,7 @@ bool TRic_archivi::create()
_nultras_tab = 0;
_baipassa = FALSE;
dispatch_e_menu (BAR_ITEM(1));
return TRUE;
return TSkeleton_application::create();
}
bool TRic_archivi::destroy()
@ -161,7 +156,7 @@ void TRic_archivi::componi_path(TMask* msk)
if (pos)
path = path.mid(pos+1);
if (path != "")
if (path.not_empty())
{
_marker << drive << "\\" << path << "\\marker";
_trasfer << drive << "\\" << path << "\\trasfer";

View File

@ -203,10 +203,10 @@ BEGIN
PROMPT 1 16 "Data cambio "
END
NUMBER 126 15 5
NUMBER 126 15 6
BEGIN
PROMPT 53 16 "Cambio "
PICTURE ".5"
PICTURE ".6"
END
ENDPAGE

View File

@ -1411,7 +1411,7 @@ bool TInv_cont::invio_mov_IVA()
record.overwrite(_codvali,146); //Codice valuta
dec2integer(_cambioi,100000);
dec2integer(_cambioi,100000L);
TString cambioi = _cambioi.string();
if (_cambioi.sign() < 0)
negPC2negAS(cambioi);
@ -1666,7 +1666,7 @@ void TInv_cont::partita2trasfer(TString& record, bool crea_record_riferimento)
record.overwrite(str,82); //Importo in valuta tot documento
_cambio = _tpart->get_real(PART_CAMBIO);
dec2integer(_cambio,100000);
dec2integer(_cambio,100000L);
TString cambioi = _cambio.string();
if (_cambio.sign() < 0)
negPC2negAS(cambioi);
@ -2025,4 +2025,5 @@ void TInv_cont::negPC2negAS(TString& numero)
void TInv_cont::dec2integer(real& val, long dec)
{
val = val * dec;
val.round();
}

View File

@ -2,6 +2,7 @@
#include <mailbox.h>
#include <msksheet.h>
#include <printapp.h>
#include <sheet.h>
#include <tabutil.h>
#include <utility.h>
@ -302,23 +303,22 @@ int TMastrini_application::date2esc(const TDate& d)
bool TMastrini_application::almeno_un_record()
{
bool trovato=FALSE;
long record;
// long sottoc;
int gruppo,conto;
TDate datareg, datacomp;
TLocalisamfile& rmov = current_cursor()->file(LF_RMOV);
if (current_cursor()->is_first_match(LF_RMOV))
{
record = rmov.recno();
long record = rmov.recno();
rmov.zero();
rmov.put(RMV_GRUPPO, _gruppo);
rmov.put(RMV_CONTO, _conto);
// rmov.put(RMV_SOTTOCONTO, _sottoc);
for (rmov.read(_isgteq); !rmov.eof() ;rmov.next())
for (int err = rmov.read(_isgteq); err == NOERR; err = rmov.next())
{
int annoes = rmov.get_int (RMV_ANNOES);
long numreg = rmov.get_long(RMV_NUMREG);
const int annoes = rmov.get_int (RMV_ANNOES);
const long numreg = rmov.get_long(RMV_NUMREG);
_mov->setkey(1);
_mov->curr().zero();
@ -3673,19 +3673,19 @@ bool TMastrini_application::sheet2mask()
bool TMastrini_application::user_create()
{
TToken_string exp;
_rel = new TRelation (LF_SALDI);
exp.add("GRUPPO=GRUPPO");
exp.add("CONTO=CONTO");
// exp.add("SOTTOCONTO=SOTTOCONTO");
// _rel->add(LF_RMOV,exp,2,LF_SALDI);
TLocalisamfile* rmov = new TSortedfile(LF_RMOV, NULL, "GRUPPO|CONTO|DATAREG|SOTTOCONTO", "", 2);
_rel->add(rmov,exp,2,LF_SALDI);
TSortedfile* rmov = new TSortedfile(LF_RMOV, NULL, "GRUPPO|CONTO|DATAREG|SOTTOCONTO", "", 2);
_rel->add(rmov,"GRUPPO==GRUPPO|CONTO==CONTO",2,LF_SALDI);
/* Debugging purpose
TCursor_sheet dbgsht(&rmov->cursor(), "GRUPPO|CONTO|DATAREG|SOTTOCONTO|NUMREG|NUMRIG",
"Test sorter", "Gruppo|Conto|Data@10|Sottoconto|Numreg|Numrig");
dbgsht.run();
*/
// rmov->cursor() = 0L;
_cur1=add_cursor(new TCursor(_rel,"FLSCA=\" \"",2));
_nditte = new TLocalisamfile (LF_NDITTE);
_unloc = new TLocalisamfile (LF_UNLOC);
_comuni = new TLocalisamfile (LF_COMUNI);

View File

@ -90,7 +90,8 @@ BEGIN
INPUT GRUPPO F_GRUPPOINI
INPUT CONTO F_CONTOINI_CONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Conto" CONTO
DISPLAY "C/F" TMCF
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPOINI GRUPPO
OUTPUT F_CONTOINI_CONTO CONTO
@ -110,6 +111,7 @@ BEGIN
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "C/F" TMCF
COPY OUTPUT F_CONTOINI_CONTO
GROUP 9
END
@ -128,6 +130,7 @@ BEGIN
INPUT CONTO F_CONTOFINE_CONTO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "C/F" TMCF
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPOFINE GRUPPO
OUTPUT F_CONTOFINE_CONTO CONTO
@ -146,6 +149,7 @@ BEGIN
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "C/F" TMCF
COPY OUTPUT F_CONTOFINE_CONTO
GROUP 4 9
END

View File

@ -1682,7 +1682,7 @@ const real& TPagamento::importo_da_non_dividere(bool v) const
void TPagamento::set_total(const real& ib, const real& im, const real& sp)
{
_in_valuta = FALSE;
_cambio = 1.0;
// _cambio = 1.0;
_firstr = _secndr = ZERO; // Azzera importi in valuta
init_total(ib, im, sp, NULL); // setta regolarmente totali in lire
@ -1695,10 +1695,11 @@ void TPagamento::set_total_valuta(const real& ib, const real& im, const real&
const bool era_valuta = _in_valuta;
_in_valuta = TRUE;
/*
_cambio = c;
if (_cambio.sign() <= 0)
_cambio = real(1.0);
*/
// setta regolarmente totali in lire
init_total(ibl, iml, spl, NULL);
// ripeti tutto con la valuta
@ -1960,7 +1961,7 @@ void TPagamento::adjust_refused_scad()
TPagamento::TPagamento(const char* codtab, const char* data) :
_new(FALSE), _mcomm(FALSE), _imponlit(0.0), _imposlit(0.0),
_speselit(0.0), _cambio(1.0), _in_valuta(FALSE),
_speselit(0.0), _in_valuta(FALSE), // _cambio(1.0),
_code(codtab), _dirty(FALSE), _inited(FALSE),
_def_tpr(1), _def_ulc(""), _roundval(3), _int_rate(30), _tpr(0), _rdiff(FALSE),
_was_tpr4(FALSE), _roundlit(0), _imponval(0.0), _imposval(0.0), _speseval(0.0),

View File

@ -45,7 +45,7 @@ class TPagamento : public TObject
real _imponlit; // imponibile da affettare in lire (se imp. in valuta)
real _imposlit; // imposta da affettare in lire
real _speselit; // spese da affettare in lire
real _cambio; // cambio valuta (TBZ?)
// real _cambio; // cambio valuta (TBZ?)
bool _new; // non letto da database
TString_array _rate; // rate medesime
@ -175,7 +175,7 @@ public:
void set_roundval(int n) { _roundval = n; }
bool in_valuta() const { return _in_valuta; }
const real& cambio() const { return _cambio; }
// const real& cambio() const { return _cambio; }
// check consistency: returns word with errors flagged, 0 if ok
word validate() const;

View File

@ -106,11 +106,12 @@ Item_01 = "Parametri liquidazione", "cg5 -3", "F"
Item_02 = "Liquidazione", "cg4 -2", "F"
Item_03 = "Visualizzazione liquidazione", "cg5 -5", "F"
Item_04 = "Riepilogo progressivi", "cg0 -3", "F"
Item_05 = "Stampa registri", "cg4 -3", "F"
Item_06 = "Liste fatture", [PRASSICG_026]
Item_07 = "Gestione acconti IVA", [PRASSICG_027]
Item_08 = "Gestione versamenti IVA", [PRASSICG_022]
Item_09 = "Gestione autotrasportatori", "cg4 -9", "F"
Item_05 = "Prospetto dich. IVA periodica", "cg5 -7", "F"
Item_06 = "Stampa registri", "cg4 -3", "F"
Item_07 = "Liste fatture", [PRASSICG_026]
Item_08 = "Gestione acconti IVA", [PRASSICG_027]
Item_09 = "Gestione versamenti IVA", [PRASSICG_022]
Item_10 = "Gestione autotrasportatori", "cg4 -9", "F"
[PRASSICG_011]
Caption = "Tabelle ministeriali"

View File

@ -109,26 +109,25 @@ int TTree_rectype::remove(TBaseisamfile& f) const
// Valuta
///////////////////////////////////////////////////////////
TValuta::TValuta(const char* cod, const TDate& dat, const real& cam, bool eur)
: _cod(cod), _dat(dat), _cam(cam), _eur(eur)
TValuta::TValuta(const char* cod, const TDate& dat, const real& cam, exchange_type eur)
: _cod(cod), _dat(dat), _cam(cam), _et(eur)
{
adjust();
}
TValuta::TValuta() : _cod(""), _dat(TODAY), _cam(ZERO), _eur(FALSE)
TValuta::TValuta() : _cod(""), _dat(TODAY), _cam(ZERO), _et(_exchange_undefined)
{
adjust();
}
void TValuta::adjust()
{
const TCurrency firm_cur(ZERO, "_FIRM");
const TCurrency this_cur(ZERO, _cod, _eur);
if (this_cur.same_value_as(firm_cur))
const TCurrency this_cur(ZERO, _cod, _cam, _et);
if (this_cur.is_firm_value())
{
_cod.cut(0);
_cam = ZERO;
_eur = FALSE;
_et = _exchange_undefined;
}
else
{
@ -136,6 +135,8 @@ void TValuta::adjust()
_cam = ZERO;
_cod = this_cur.get_value();
}
if (_et == _exchange_undefined)
this_cur.get_change(_et);
}
int TValuta::compare(const TSortable& s) const
@ -150,9 +151,9 @@ void TValuta::get(const TRectype& rec)
_dat = rec.get("DATACAM");
_cam = rec.get_real("CAMBIO");
if (rec.exist("CONTROEURO"))
_eur = rec.get_bool("CONTROEURO");
_et = rec.get_bool("CONTROEURO") ? _exchange_contro : _exchange_base;
else
_eur = FALSE;
_et = _exchange_undefined;
adjust();
}
@ -163,6 +164,8 @@ void TValuta::put(TRectype& rec) const
rec.zero("CODVAL");
rec.zero("DATACAM");
rec.zero("CAMBIO");
if (rec.exist("CONTROEURO"))
rec.zero("CONTROEURO");
}
else
{
@ -170,7 +173,7 @@ void TValuta::put(TRectype& rec) const
rec.put("DATACAM", _dat);
rec.put("CAMBIO", _cam);
if (rec.exist("CONTROEURO"))
rec.put("CONTROEURO", _eur);
rec.put("CONTROEURO", _et == _exchange_contro ? "X" : "");
}
}
@ -190,7 +193,7 @@ void TValuta::set(TMask& m, short v, short d, short c, short e) const
m.set(d, _dat.string());
m.set(c, _cam.string());
if (e && m.id2pos(e) >= 0)
m.set(e, _eur ? "X" : "");
m.set(e, _et == _exchange_contro ? "X" : "");
}
}
@ -200,9 +203,9 @@ void TValuta::get(const TMask& m, short v, short d, short c, short e)
_dat = m.get(d);
_cam = m.get_real(c);
if (e && m.id2pos(e) >= 0)
_eur = m.get_bool(e);
_et = m.get_bool(e) ? _exchange_contro : _exchange_base;
else
_eur = FALSE;
_et = _exchange_undefined;
adjust();
}
@ -211,34 +214,34 @@ void TValuta::set(const TValuta& v)
_cod = v._cod;
_dat = v._dat;
_cam = v._cam;
_eur = v._eur;
_et = v._et;
}
real TValuta::lit2val(const real& lit) const
{
TCurrency cur(lit, "_FIRM");
cur.change_value(_cod, _cam, _eur);
TCurrency cur(lit);
cur.change_value(_cod, _cam, _et);
return cur.get_num();
}
real TValuta::val2lit(const real& val) const
{
TCurrency cur(val, _cod, _cam, _eur);
TCurrency cur(val, _cod, _cam, _et);
cur.change_to_firm_val();
return cur.get_num();
}
void TValuta::val2lit(real& val) const
{
TCurrency cur(val, _cod, _cam, _eur);
TCurrency cur(val, _cod, _cam, _et);
cur.change_to_firm_val();
val = cur.get_num();
}
void TValuta::lit2val(real& lit) const
{
TCurrency cur(lit, "_FIRM");
cur.change_value(_cod, _cam, _eur);
TCurrency cur(lit);
cur.change_value(_cod, _cam, _et);
lit = cur.get_num();
}
@ -314,7 +317,7 @@ bool TRiga_scadenze::chiusa(bool update) const
// Calcola il totale dei pagamenti (eventualmente in valuta)
TImporto TRiga_scadenze::importo_pagato(bool val, int mode) const
{
CHECKD(mode > 0x0 && mode <= 0xF, "Bad importo_pagato mode ", mode);
CHECKD(mode > 0x0 && mode <= 0xFF, "Bad importo_pagato mode ", mode);
const TPartita& game = partita();
const bool in_val = in_valuta();
const char* imp_field = (val && in_val) ? PAGSCA_IMPORTOVAL : PAGSCA_IMPORTO;
@ -333,16 +336,18 @@ TImporto TRiga_scadenze::importo_pagato(bool val, int mode) const
if (mode & 0x2) // Voglio anche gli abbuoni
{
real abb(pag.get_real(PAGSCA_ABBUONI));
if (in_val && !val) // Gli abbuoni sono sempre in valuta e quindi
{ // devono essere convertiti opportunamente
// abb *= sum.get_real(PART_CAMBIO);
// abb.round();
TCurrency cur(abb, "_FIRM");
cur *= sum.get_real(PART_CAMBIO);
abb = cur.get_num();
}
totale += TImporto(sez, abb);
real abb = pag.get_real(PAGSCA_ABBUONI);
if (!abb.is_zero())
{
if (in_val && !val) // Gli abbuoni sono sempre in valuta e quindi
{ // devono essere convertiti opportunamente
const TExchange cmb(sum);
TCurrency cur(abb, cmb);
cur.change_to_firm_val();
abb = cur.get_num();
}
totale += TImporto(sez, abb);
}
}
if (in_val && !val && (mode & 0x4)) // Voglio anche le differenze cambio
@ -474,9 +479,10 @@ bool TRiga_scadenze::modifica_pagamento(const TRectype& new_pag, const TValuta&
if (in_val)
{
const TString4 codval = sum.codice_valuta();
const bool contro = ((TRectype&)sum).exist(PART_CONTROEURO) && sum.get_bool(PART_CONTROEURO);
TCurrency cur(old_abb.valore(), codval,
sum.get_real(PART_CAMBIO), contro);
exchange_type et = _exchange_undefined;
if (((TRectype&)sum).exist(PART_CONTROEURO))
et = sum.get_bool(PART_CONTROEURO) ? _exchange_contro : _exchange_base;
TCurrency cur(old_abb.valore(), codval, sum.get_real(PART_CAMBIO), et);
cur.change_to_firm_val();
old_abb.valore() = cur.get_num();
}
@ -495,9 +501,10 @@ bool TRiga_scadenze::modifica_pagamento(const TRectype& new_pag, const TValuta&
if (in_valuta())
{
const TString4 codval = sum.codice_valuta();
const bool contro = ((TRectype&)sum).exist(PART_CONTROEURO) && sum.get_bool(PART_CONTROEURO);
TCurrency cur(new_abb.valore(), codval,
sum.get_real(PART_CAMBIO), contro);
exchange_type et = _exchange_undefined;
if (((TRectype&)sum).exist(PART_CONTROEURO))
et = sum.get_bool(PART_CONTROEURO) ? _exchange_contro : _exchange_base;
TCurrency cur(new_abb.valore(), codval, sum.get_real(PART_CAMBIO), et);
cur.change_to_firm_val();
new_abb.valore() = cur.get_num();
}
@ -940,7 +947,7 @@ char TPartita::allineamento_richiesto(char tipocf)
{
case 'C': all = _cli_align; break;
case 'F': all = _for_align; break;
default : all = ' '; break;
default : all = 'L'; break;
}
return all;
}

View File

@ -1,6 +1,10 @@
#ifndef __CGSALDAC_H
#define __CGSALDAC_H
#ifndef __CURRENCY_H
#include <currency.h>
#endif
#ifndef __RECARRAY_H
#include <recarray.h>
#endif
@ -70,7 +74,7 @@ class TValuta : public TSortable
TString4 _cod;
TDate _dat;
real _cam;
bool _eur;
exchange_type _et;
protected: // TSortable
virtual int compare(const TSortable& s) const;
@ -83,6 +87,7 @@ public:
const TString& codice() const { return _cod; }
const TDate& data() const { return _dat; }
const real& cambio() const { return _cam; }
exchange_type tipo_cambio() const { return _et; }
real lit2val(const real& lit) const;
real val2lit(const real& val) const;
@ -103,7 +108,7 @@ public:
const TValuta& operator =(const TValuta& v) { set(v); return *this; }
TValuta();
TValuta(const char* cod, const TDate& dat, const real& cam, bool eur = FALSE);
TValuta(const char* cod, const TDate& dat, const real& cam, exchange_type et = _exchange_undefined);
TValuta(const TRectype& rec) { get(rec); }
TValuta(const TMask& m, short v, short d, short c, short e = 0) { get(m, v, d, c, e); }
TValuta(const TValuta& v) { set(v); }

View File

@ -1,3 +1,3 @@
17
0
$cfven|0|0|404|0|Clienti/Fornitori per vendite|||
$cfven|0|0|411|0|Clienti/Fornitori per vendite|||

View File

@ -1,5 +1,5 @@
17
70
72
TIPOCF|1|1|0|Tipo <C>liente, <F>ornitore
CODCF|3|6|0|Codice
CODINDDOC|2|3|0|Codice indirizzo documenti
@ -70,5 +70,7 @@ ESPLA|4|6|2|Percentuale di esenzione CONAI plastica
ESLEG|4|6|2|Percentuale di esenzione CONAI legno
ESVET|4|6|2|Percentuale di esenzione CONAI vetro
CONAIASS|8|1|0|Stampa contributo CONAI assolto
TIPODOCFAT|1|4|0|Tipo documento
CODCAUS|1|3|0|Causale Contabile
1
TIPOCF+CODCF|

View File

@ -1,3 +1,3 @@
23
0
$mov|0|0|341|0|Movimenti di prima nota|NMOV||
$mov|91|91|341|0|Movimenti di prima nota|||

View File

@ -18,20 +18,20 @@ PROTIVA|3|5|0|Numero di protocollo IVA
UPROTIVA|3|5|0|Ultimo numero di protocollo IVA se diverso da PROTIVA
CODVAL|1|3|0|Codice valuta
DATACAM|5|8|0|Data del cambio
CAMBIO|4|15|5|Cambio della valuta
CAMBIO|4|15|6|Cambio della valuta
REGST|8|1|0|Stampato su registro IVA
STAMPATO|8|1|0|Stampato su giornale
NUMGIO|3|7|0|Numero operazione sul giornale
TIPO|1|1|0|Tipo <C>liente o <F>ornitore
CODCF|3|6|0|Codice
TOTDOC|4|18|2|Totale documento
TOTDOC|4|18|3|Totale documento
TOTDOCVAL|4|18|3|Totale documento in valuta
RITFIS|4|18|2|Ritenute fiscali
RITSOC|4|18|2|Ritenute sociali
RITFIS|4|18|3|Ritenute fiscali
RITSOC|4|18|3|Ritenute sociali
PROVVIS|1|1|0|Tipo movimento (0 Normali, 1 Provvisori cancellabili, 2 Provvisori non cancellabili
CODVALI|1|3|0|Codice valuta intra-comunitaria
CAMBIOI|4|15|5|Cambio della valuta intra-comunitaria
CORRLIRE|4|18|2|Corrispettivo in lire intra-comunitario
CAMBIOI|4|15|6|Cambio della valuta intra-comunitaria
CORRLIRE|4|18|3|Corrispettivo in lire intra-comunitario
CORRVALUTA|4|18|3|Corrispettivo in valuta intra-comunitario
OCFPI|1|16|0|Codice cliente / fornitore occasionale
CODPAG|1|4|0|Codice pagamento

View File

@ -15,7 +15,7 @@ TIPOCC|1|1|0|Tipo contropartita <C>liente <F>ornitore
GRUPPOC|2|3|0|Gruppo contropartita
CONTOC|2|3|0|Conto cotropartita
SOTTOCONTC|3|6|0|Sottoconto o codice cliente /fornitore contropartita
IMPORTO|4|18|2|
IMPORTO|4|18|3|
ROWTYPE|1|1|0|
NUMGIO|3|7|0|
2

View File

@ -4,8 +4,8 @@ ANNOES|2|4|0|Codice esercizio
NUMREG|3|7|0|Numero operazione
NUMRIG|2|3|0|Numero riga
CODIVA|1|4|0|Codice IVA
IMPONIBILE|4|18|2|Imponibile
IMPOSTA|4|18|2|Imposta
IMPONIBILE|4|18|3|Imponibile
IMPOSTA|4|18|3|Imposta
TIPODET|2|1|0|Tipo detrazione
TIPOCR|2|1|0|Tipo costo ricavo
INTRA|8|1|0|Riga intra-comunitaria

View File

@ -17,24 +17,24 @@ REG|1|3|0|Codice Registro
PROTIVA|3|5|0|Numero protocollo IVA
CODCAUS|1|3|0|Codice causale
SEZ|1|1|0|Sezione <D>are <A>vere
IMPORTO|4|18|2|Importo
IMPOSTA|4|18|2|IVA
SPESE|4|18|2|Spese
IMPORTO|4|18|3|Importo
IMPOSTA|4|18|3|IVA
SPESE|4|18|3|Spese
CODVAL|1|3|0|Codice valuta
CAMBIO|4|15|5|Cambio della valuta
CAMBIO|4|15|6|Cambio della valuta
IMPORTOVAL|4|18|3|Importo in valuta
DATACAM|5|8|0|Data del cambio
TIPOC|1|1|0|Tipo <C>liente <F>ornitore
GRUPPO|2|3|0|Gruppo
CONTO|2|3|0|Conto
SOTTOCONTO|3|6|0|Sottoconto o codice cliente / fornitore
IMPTOTDOC|4|18|2|Importo totale documento
IMPTOTDOC|4|18|3|Importo totale documento
IMPTOTVAL|4|18|3|Importo totale documento in valuta
RITENUTE|4|18|2|Ritenute fiscali sul pagamento
RITENUTE|4|18|3|Ritenute fiscali sul pagamento
SEZABB|1|1|0|Sezione degli abbuoni
ABBUONI|4|18|3|Abbuoni
SEZDIFCAM|1|1|0|Sezione delle differenze cambi
DIFFCAM|4|18|2|Differenze cambi
DIFFCAM|4|18|3|Differenze cambi
CHIUSA|8|1|0|Partita pareggiata (chiusa)
RICARICATA|8|1|0|Partita ricaricata
INVIATA|8|1|0|Partita inviata

Some files were not shown because too many files have changed in this diff Show More