Patch level : 4.0 979
Files correlati : ve6.exe Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 979 git-svn-id: svn://10.65.10.50/trunk@15623 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
93535d40d0
commit
96f33c01ee
@ -1,4 +0,0 @@
|
|||||||
#define APPNAME AVIS
|
|
||||||
#define QAPPNAME "AVIS"
|
|
||||||
#include <default.url>
|
|
||||||
#include <mainmenu.url>
|
|
@ -1,4 +0,0 @@
|
|||||||
#define APPNAME AVIS
|
|
||||||
#define QAPPNAME "AVIS"
|
|
||||||
#include <default.url>
|
|
||||||
#include <mainmenu.url>
|
|
@ -1,4 +0,0 @@
|
|||||||
#define APPNAME AVIS
|
|
||||||
#define QAPPNAME "AVIS"
|
|
||||||
#include <default.url>
|
|
||||||
#include <mainmenu.url>
|
|
@ -163,7 +163,7 @@ void TStampaSospesi::set_page(int file, int cnt)
|
|||||||
if (current_cursor()->pos()<current_cursor()->items())
|
if (current_cursor()->pos()<current_cursor()->items())
|
||||||
{
|
{
|
||||||
_netichette++;
|
_netichette++;
|
||||||
force_setpage(TRUE);
|
force_setpage(true);
|
||||||
corpo.update();
|
corpo.update();
|
||||||
int nriga = 1;
|
int nriga = 1;
|
||||||
if (_etrighe > 0)
|
if (_etrighe > 0)
|
||||||
@ -243,7 +243,7 @@ void TStampaSospesi::set_page(int file, int cnt)
|
|||||||
TPrintrow& riga = corpo.row(i);
|
TPrintrow& riga = corpo.row(i);
|
||||||
set_row(nriga++,riga);
|
set_row(nriga++,riga);
|
||||||
}
|
}
|
||||||
force_setpage(TRUE);
|
force_setpage(true);
|
||||||
_ncartoline++;
|
_ncartoline++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -256,7 +256,7 @@ void TStampaSospesi::set_page(int file, int cnt)
|
|||||||
TPrintrow& riga = corpo.row(i);
|
TPrintrow& riga = corpo.row(i);
|
||||||
set_row(i+1,riga);
|
set_row(i+1,riga);
|
||||||
}
|
}
|
||||||
force_setpage(TRUE); // serve perchè alla prossima etichetta rifaccia la setpage
|
force_setpage(true); // serve perchè alla prossima etichetta rifaccia la setpage
|
||||||
// altrimenti stampa sempre la stessa etichetta
|
// altrimenti stampa sempre la stessa etichetta
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -327,8 +327,8 @@ void TStampaSospesi::set_page(int file, int cnt)
|
|||||||
|
|
||||||
bool TStampaSospesi::filter_func_sospesi(const TRelation* rel)
|
bool TStampaSospesi::filter_func_sospesi(const TRelation* rel)
|
||||||
{
|
{
|
||||||
bool filtrato = TRUE;
|
bool filtrato = true;
|
||||||
bool filtrocat = TRUE;
|
bool filtrocat = true;
|
||||||
TRectype recsog = rel->lfile().curr();
|
TRectype recsog = rel->lfile().curr();
|
||||||
// filtro per categorie
|
// filtro per categorie
|
||||||
TAssoc_array& categorie = app()._categorie;
|
TAssoc_array& categorie = app()._categorie;
|
||||||
@ -369,18 +369,18 @@ bool TStampaSospesi::filter_func_sospesi(const TRelation* rel)
|
|||||||
const TString16 motivo = contsan.get(CON_MOTIVO);
|
const TString16 motivo = contsan.get(CON_MOTIVO);
|
||||||
if ((app()._motivo1==motivo)
|
if ((app()._motivo1==motivo)
|
||||||
|| (app()._motivo2==motivo && app()._motivo2.not_empty()) || (app()._motivo3==motivo && app()._motivo3.not_empty()) || (app()._motivo4==motivo && app()._motivo4.not_empty()) || (app()._motivo5==motivo) && app()._motivo5.not_empty())
|
|| (app()._motivo2==motivo && app()._motivo2.not_empty()) || (app()._motivo3==motivo && app()._motivo3.not_empty()) || (app()._motivo4==motivo && app()._motivo4.not_empty()) || (app()._motivo5==motivo) && app()._motivo5.not_empty())
|
||||||
filtrato = TRUE;
|
filtrato = true;
|
||||||
else
|
else
|
||||||
filtrato = FALSE;
|
filtrato = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
filtrato = FALSE;
|
filtrato = false;
|
||||||
}
|
}
|
||||||
if (!filtrato && filtrocat && app()._sosingole)
|
if (!filtrato && filtrocat && app()._sosingole)
|
||||||
{
|
{
|
||||||
// verifico se e' sospeso per una singola tipologia di donazione
|
// verifico se e' sospeso per una singola tipologia di donazione
|
||||||
// Sangue intero
|
// Sangue intero
|
||||||
filtrato = TRUE;
|
filtrato = true;
|
||||||
if ((filtrato) && (app()._sodataini.ok()))
|
if ((filtrato) && (app()._sodataini.ok()))
|
||||||
{
|
{
|
||||||
const TDate datastato = recsog.get_date(SOG_DATASI);
|
const TDate datastato = recsog.get_date(SOG_DATASI);
|
||||||
@ -406,7 +406,7 @@ bool TStampaSospesi::filter_func_sospesi(const TRelation* rel)
|
|||||||
{
|
{
|
||||||
// verifico se e' sospeso per una singola tipologia di donazione
|
// verifico se e' sospeso per una singola tipologia di donazione
|
||||||
// Aferesi
|
// Aferesi
|
||||||
filtrato = TRUE;
|
filtrato = true;
|
||||||
if ((filtrato) && (app()._sodataini.ok()))
|
if ((filtrato) && (app()._sodataini.ok()))
|
||||||
{
|
{
|
||||||
const TDate datastato = recsog.get_date(SOG_DATAAF);
|
const TDate datastato = recsog.get_date(SOG_DATAAF);
|
||||||
@ -499,7 +499,7 @@ bool TStampaSospesi::preprocess_page(int file, int counter)
|
|||||||
printer().formfeed();
|
printer().formfeed();
|
||||||
_contatore++;
|
_contatore++;
|
||||||
_totale++;
|
_totale++;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
print_action TStampaSospesi::postprocess_print(int file, int counter)
|
print_action TStampaSospesi::postprocess_print(int file, int counter)
|
||||||
@ -664,7 +664,7 @@ bool TStampaSospesi::set_print(int m)
|
|||||||
_prosstipo = _msk->get(F_PROSSTIPO);
|
_prosstipo = _msk->get(F_PROSSTIPO);
|
||||||
if (_prosstipo.not_empty())
|
if (_prosstipo.not_empty())
|
||||||
filtro << " && (" << SOG_PROS_STATO << "== \"" << _prosstipo << "\")";
|
filtro << " && (" << SOG_PROS_STATO << "== \"" << _prosstipo << "\")";
|
||||||
current_cursor()->setfilter(filtro, TRUE);
|
current_cursor()->setfilter(filtro, true);
|
||||||
// filtro per categorie
|
// filtro per categorie
|
||||||
_categorie.destroy();
|
_categorie.destroy();
|
||||||
const TString16 catpri = _msk->get(F_CAT1);
|
const TString16 catpri = _msk->get(F_CAT1);
|
||||||
@ -699,10 +699,10 @@ bool TStampaSospesi::set_print(int m)
|
|||||||
reset_print();
|
reset_print();
|
||||||
printer().footerlen(0);
|
printer().footerlen(0);
|
||||||
crea_intestazione();
|
crea_intestazione();
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TStampaSospesi::crea_intestazione()
|
void TStampaSospesi::crea_intestazione()
|
||||||
@ -801,7 +801,7 @@ bool TStampaSospesi::user_create()
|
|||||||
_cabordofin = config.get_int("CaBordoFin");
|
_cabordofin = config.get_int("CaBordoFin");
|
||||||
|
|
||||||
_form_let = new TEti_sospesi_form("ATLETTER");
|
_form_let = new TEti_sospesi_form("ATLETTER");
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TStampaSospesi::user_destroy()
|
bool TStampaSospesi::user_destroy()
|
||||||
@ -811,7 +811,7 @@ bool TStampaSospesi::user_destroy()
|
|||||||
delete _msk;
|
delete _msk;
|
||||||
delete _contsan;
|
delete _contsan;
|
||||||
delete _rel;
|
delete _rel;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int at2100(int argc, char* argv[])
|
int at2100(int argc, char* argv[])
|
||||||
|
@ -116,7 +116,7 @@ void TStampaPerEta::set_page(int file, int cnt)
|
|||||||
{
|
{
|
||||||
if (current_cursor()->pos()<current_cursor()->items())
|
if (current_cursor()->pos()<current_cursor()->items())
|
||||||
{
|
{
|
||||||
force_setpage(TRUE);
|
force_setpage(true);
|
||||||
corpo.update();
|
corpo.update();
|
||||||
for (word i = 0; i < corpo.height(); i++)
|
for (word i = 0; i < corpo.height(); i++)
|
||||||
{
|
{
|
||||||
@ -174,7 +174,7 @@ void TStampaPerEta::set_page(int file, int cnt)
|
|||||||
|
|
||||||
bool TStampaPerEta::filter_func_pereta(const TRelation* rel)
|
bool TStampaPerEta::filter_func_pereta(const TRelation* rel)
|
||||||
{
|
{
|
||||||
bool filtrato = TRUE;
|
bool filtrato = true;
|
||||||
TLocalisamfile& sog = rel->lfile();
|
TLocalisamfile& sog = rel->lfile();
|
||||||
// filtro per sesso
|
// filtro per sesso
|
||||||
if (app()._sesso != 'I')
|
if (app()._sesso != 'I')
|
||||||
@ -265,7 +265,7 @@ bool TStampaPerEta::preprocess_page(int file, int counter)
|
|||||||
printer().formfeed();
|
printer().formfeed();
|
||||||
_contatore++;
|
_contatore++;
|
||||||
_totale++;
|
_totale++;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
print_action TStampaPerEta::postprocess_print(int file, int counter)
|
print_action TStampaPerEta::postprocess_print(int file, int counter)
|
||||||
@ -362,10 +362,10 @@ bool TStampaPerEta::set_print(int m)
|
|||||||
reset_print();
|
reset_print();
|
||||||
printer().footerlen(0);
|
printer().footerlen(0);
|
||||||
crea_intestazione();
|
crea_intestazione();
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TStampaPerEta::crea_intestazione()
|
void TStampaPerEta::crea_intestazione()
|
||||||
@ -438,7 +438,7 @@ bool TStampaPerEta::user_create()
|
|||||||
_form_eti = new TEti_pereta_form(etformato);
|
_form_eti = new TEti_pereta_form(etformato);
|
||||||
_msk = new TMask("at2200a");
|
_msk = new TMask("at2200a");
|
||||||
_stampa80 = config.get_bool("Stampa80");
|
_stampa80 = config.get_bool("Stampa80");
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TStampaPerEta::user_destroy()
|
bool TStampaPerEta::user_destroy()
|
||||||
@ -446,7 +446,7 @@ bool TStampaPerEta::user_destroy()
|
|||||||
delete _form_eti;
|
delete _form_eti;
|
||||||
delete _msk;
|
delete _msk;
|
||||||
delete _rel;
|
delete _rel;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int at2200(int argc, char* argv[])
|
int at2200(int argc, char* argv[])
|
||||||
|
@ -104,7 +104,7 @@ void TStampaEsclusi::set_page(int file, int cnt)
|
|||||||
}
|
}
|
||||||
// serve perchè alla prossima etichetta rifaccia la setpage
|
// serve perchè alla prossima etichetta rifaccia la setpage
|
||||||
// altrimenti stampa sempre la stessa etichetta
|
// altrimenti stampa sempre la stessa etichetta
|
||||||
force_setpage(TRUE);
|
force_setpage(true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case elenco:
|
case elenco:
|
||||||
@ -124,7 +124,7 @@ void TStampaEsclusi::set_page(int file, int cnt)
|
|||||||
|
|
||||||
bool TStampaEsclusi::filter_func_esclusi(const TRelation * rel)
|
bool TStampaEsclusi::filter_func_esclusi(const TRelation * rel)
|
||||||
{
|
{
|
||||||
bool filtrato = TRUE;
|
bool filtrato = true;
|
||||||
TLocalisamfile& sog = rel->lfile();
|
TLocalisamfile& sog = rel->lfile();
|
||||||
//filtro per categorie
|
//filtro per categorie
|
||||||
TAssoc_array& categorie = app()._categorie;
|
TAssoc_array& categorie = app()._categorie;
|
||||||
@ -169,7 +169,7 @@ bool TStampaEsclusi::preprocess_page(int file, int counter)
|
|||||||
printer().formfeed();
|
printer().formfeed();
|
||||||
_contatore++;
|
_contatore++;
|
||||||
_totale++;
|
_totale++;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
print_action TStampaEsclusi::postprocess_print(int file, int counter)
|
print_action TStampaEsclusi::postprocess_print(int file, int counter)
|
||||||
@ -293,10 +293,10 @@ bool TStampaEsclusi::set_print(int)
|
|||||||
reset_print();
|
reset_print();
|
||||||
printer().footerlen(0);
|
printer().footerlen(0);
|
||||||
crea_intestazione();
|
crea_intestazione();
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TStampaEsclusi::crea_intestazione()
|
void TStampaEsclusi::crea_intestazione()
|
||||||
@ -347,7 +347,7 @@ bool TStampaEsclusi::user_create()
|
|||||||
_etlarghezza = config.get_int("EtLarghezza");
|
_etlarghezza = config.get_int("EtLarghezza");
|
||||||
_etcolonne = config.get_int("EtColonne");
|
_etcolonne = config.get_int("EtColonne");
|
||||||
_form_eti = new TEti_esclusi_form(etformato);
|
_form_eti = new TEti_esclusi_form(etformato);
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TStampaEsclusi::user_destroy()
|
bool TStampaEsclusi::user_destroy()
|
||||||
@ -355,7 +355,7 @@ bool TStampaEsclusi::user_destroy()
|
|||||||
delete _form_eti;
|
delete _form_eti;
|
||||||
delete _msk;
|
delete _msk;
|
||||||
delete _rel;
|
delete _rel;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int at2300(int argc, char* argv[])
|
int at2300(int argc, char* argv[])
|
||||||
|
@ -351,7 +351,7 @@ bool TStampaModificati::set_print(int)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TStampaModificati::crea_intestazione()
|
void TStampaModificati::crea_intestazione()
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
#define APPNAME AVIS
|
|
||||||
#define QAPPNAME "AVIS"
|
|
||||||
#include <default.url>
|
|
||||||
#include <mainmenu.url>
|
|
@ -126,12 +126,15 @@ DATE F_DATAINI
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Donazioni effettuate dal "
|
PROMPT 2 6 "Donazioni effettuate dal "
|
||||||
HELP "Data iniziale"
|
HELP "Data iniziale"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_DATAFIN
|
DATE F_DATAFIN
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 40 6 "al "
|
PROMPT 40 6 "al "
|
||||||
HELP "Data finale"
|
HELP "Data finale"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
VALIDATE DATE_CMP_FUNC >= F_DATAINI
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_PRIMEDON
|
BOOLEAN F_PRIMEDON
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
#define APPNAME AVIS
|
|
||||||
#define QAPPNAME "AVIS"
|
|
||||||
#include <default.url>
|
|
||||||
#include <mainmenu.url>
|
|
@ -67,7 +67,7 @@ class TStampaScadenze : public TPrintapp
|
|||||||
TDate _data_stampa;
|
TDate _data_stampa;
|
||||||
TDate _dataini, _datafin, _dataultid, _dataultdon;
|
TDate _dataini, _datafin, _dataultid, _dataultdon;
|
||||||
int _intminconv;
|
int _intminconv;
|
||||||
bool _usomodo, _usasez, _registra, _gpd_esclusivo, _proc_esclusivo, _perfamiglie, _usodisp;
|
bool _usomodo, _usasez, _registra, _gpd_esclusivo, _proc_esclusivo, _perfamiglie, _usodisp, _percap;
|
||||||
TString16 _giorni, _punto;
|
TString16 _giorni, _punto;
|
||||||
TString16 _procdon, _modo, _ab01, _ab02, _ab03, _rh;
|
TString16 _procdon, _modo, _ab01, _ab02, _ab03, _rh;
|
||||||
ts _tipostampa;
|
ts _tipostampa;
|
||||||
@ -364,7 +364,8 @@ void TStampaScadenze::set_page(int file, int cnt)
|
|||||||
set_row(1,"@119g@S", FLD(LF_SOGGETTI,SOG_DISP_AF_1));
|
set_row(1,"@119g@S", FLD(LF_SOGGETTI,SOG_DISP_AF_1));
|
||||||
set_row(1,"@122g@S", FLD(LF_SOGGETTI,SOG_DISP_AF_2));
|
set_row(1,"@122g@S", FLD(LF_SOGGETTI,SOG_DISP_AF_2));
|
||||||
|
|
||||||
set_row(4,"");
|
set_row(4,"@36g@S", FLD(LF_SOGGETTI,SOG_EMAIL));
|
||||||
|
set_row(5,"");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case personale:
|
case personale:
|
||||||
@ -581,7 +582,7 @@ bool TStampaScadenze::preprocess_page(int file, int counter)
|
|||||||
_contatore = 0;
|
_contatore = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if ((printer().rows_left()<4 && _tipostampa==elenco) || (printer().rows_left()<3 && _tipostampa==completo))
|
if ((printer().rows_left()<5 && _tipostampa==elenco) || (printer().rows_left()<3 && _tipostampa==completo))
|
||||||
printer().formfeed();
|
printer().formfeed();
|
||||||
_contatore++;
|
_contatore++;
|
||||||
_totfinestampa++;
|
_totfinestampa++;
|
||||||
@ -814,6 +815,7 @@ bool TStampaScadenze::set_print(int m)
|
|||||||
_usomodo = _msk->get_bool(F_USOMODO);
|
_usomodo = _msk->get_bool(F_USOMODO);
|
||||||
_modo = _msk->get(F_MODO);
|
_modo = _msk->get(F_MODO);
|
||||||
_perfamiglie = _msk->get_bool(F_PERFAMIGLIE);
|
_perfamiglie = _msk->get_bool(F_PERFAMIGLIE);
|
||||||
|
_percap = _msk->get_bool(F_PERCAP);
|
||||||
_ab01 = _msk->get(F_AB01);
|
_ab01 = _msk->get(F_AB01);
|
||||||
_ab02 = _msk->get(F_AB02);
|
_ab02 = _msk->get(F_AB02);
|
||||||
_ab03 = _msk->get(F_AB03);
|
_ab03 = _msk->get(F_AB03);
|
||||||
@ -858,6 +860,9 @@ bool TStampaScadenze::set_print(int m)
|
|||||||
_categorie.add((const char*) catqui);
|
_categorie.add((const char*) catqui);
|
||||||
if (catses.not_empty())
|
if (catses.not_empty())
|
||||||
_categorie.add((const char*) catses);
|
_categorie.add((const char*) catses);
|
||||||
|
if (_percap)
|
||||||
|
((TSorted_cursor*)current_cursor())->change_order("90->DOM_CAP|90->DOM_CODCOM|90->COGNOME|90->NOME");
|
||||||
|
|
||||||
// filtro per idoneo e non escluso
|
// filtro per idoneo e non escluso
|
||||||
//if (_usomodo)
|
//if (_usomodo)
|
||||||
//current_cursor()->setfilter(format("(TCS->S6 == \"I\" || TCS->S6 == \"F\") && (ESCLUSO == \"\") && (MODCONV == \"%s\")",(const char*)_modo), TRUE);
|
//current_cursor()->setfilter(format("(TCS->S6 == \"I\" || TCS->S6 == \"F\") && (ESCLUSO == \"\") && (MODCONV == \"%s\")",(const char*)_modo), TRUE);
|
||||||
@ -953,7 +958,7 @@ void TStampaScadenze::crea_intestazione()
|
|||||||
{
|
{
|
||||||
set_header(5,"@0gCodice@10gCognome e Nome@36gIndirizzo@62gTelefoni@77gData pr.SI@88gData ult.SI@99gUlt.idon.@110gInt.SI@119gDisp.AF");
|
set_header(5,"@0gCodice@10gCognome e Nome@36gIndirizzo@62gTelefoni@77gData pr.SI@88gData ult.SI@99gUlt.idon.@110gInt.SI@119gDisp.AF");
|
||||||
set_header(6,"@0gTessera@10gData nasc.@77gData pr.AF@88gData ult.AF@99g Gio.pre.@110gInt.AF");
|
set_header(6,"@0gTessera@10gData nasc.@77gData pr.AF@88gData ult.AF@99g Gio.pre.@110gInt.AF");
|
||||||
set_header(7,"@0gCat.77gGr. Rh. Fen. Kell Du A CMV@110gTot.don.");
|
set_header(7,"@0gCat.@36gPosta elettronica@77gGr. Rh. Fen. Kell Du A CMV@110gTot.don.");
|
||||||
set_header(8,"@0g------@10g-------------------------@36g-------------------------@62g-------------@77g----------@88g----------@99g---------@110g------@119g-------");
|
set_header(8,"@0g------@10g-------------------------@36g-------------------------@62g-------------@77g----------@88g----------@99g---------@110g------@119g-------");
|
||||||
}
|
}
|
||||||
printer().footerlen(3);
|
printer().footerlen(3);
|
||||||
@ -990,7 +995,7 @@ bool TStampaScadenze::user_create()
|
|||||||
_donaz = new TLocalisamfile(LF_DONAZ);
|
_donaz = new TLocalisamfile(LF_DONAZ);
|
||||||
_famiglie = new TLocalisamfile(LF_FAMIGLIE);
|
_famiglie = new TLocalisamfile(LF_FAMIGLIE);
|
||||||
_sfamiglia = new TRecord_array(LF_FAMIGLIE,FAM_PROGFAM);
|
_sfamiglia = new TRecord_array(LF_FAMIGLIE,FAM_PROGFAM);
|
||||||
add_cursor(new TCursor(_rel, "", 3));
|
add_cursor(new TSorted_cursor(_rel,"","",3));
|
||||||
_msk = new TMask("at4100a");
|
_msk = new TMask("at4100a");
|
||||||
TConfig config(CONFIG_STUDIO);
|
TConfig config(CONFIG_STUDIO);
|
||||||
|
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
#define F_PROC_ESCLUSIVO 324
|
#define F_PROC_ESCLUSIVO 324
|
||||||
#define F_PERFAMIGLIE 325
|
#define F_PERFAMIGLIE 325
|
||||||
#define F_DATAULTDON 326
|
#define F_DATAULTDON 326
|
||||||
|
#define F_PERCAP 327
|
||||||
|
|
||||||
#define F_ELENCO 401
|
#define F_ELENCO 401
|
||||||
#define F_COMPLETO 402
|
#define F_COMPLETO 402
|
||||||
|
@ -430,6 +430,11 @@ BEGIN
|
|||||||
MESSAGE FALSE RESET,F_MODO|DISABLE,F_MODO
|
MESSAGE FALSE RESET,F_MODO|DISABLE,F_MODO
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_PERCAP
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 18 "Ordinamento per CAP+Alfabetico"
|
||||||
|
END
|
||||||
|
|
||||||
LISTBOX F_AB01 5
|
LISTBOX F_AB01 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 19 "Gruppi AB0 "
|
PROMPT 2 19 "Gruppi AB0 "
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
#define APPNAME AVIS
|
|
||||||
#define QAPPNAME "AVIS"
|
|
||||||
#include <default.url>
|
|
||||||
#include <mainmenu.url>
|
|
@ -1,4 +0,0 @@
|
|||||||
#define APPNAME AVIS
|
|
||||||
#define QAPPNAME "AVIS"
|
|
||||||
#include <default.url>
|
|
||||||
#include <mainmenu.url>
|
|
@ -1,4 +0,0 @@
|
|||||||
#define APPNAME AVIS
|
|
||||||
#define QAPPNAME "AVIS"
|
|
||||||
#include <default.url>
|
|
||||||
#include <mainmenu.url>
|
|
@ -1,4 +0,0 @@
|
|||||||
#define APPNAME AVIS
|
|
||||||
#define QAPPNAME "AVIS"
|
|
||||||
#include <default.url>
|
|
||||||
#include <mainmenu.url>
|
|
@ -1,4 +0,0 @@
|
|||||||
#define APPNAME AVIS
|
|
||||||
#define QAPPNAME "AVIS"
|
|
||||||
#include <default.url>
|
|
||||||
#include <mainmenu.url>
|
|
@ -157,7 +157,7 @@ bool TStatSogSosp::crea_colonne()
|
|||||||
contatore = contatore+1;
|
contatore = contatore+1;
|
||||||
real* oggetto2 = new real(contatore);
|
real* oggetto2 = new real(contatore);
|
||||||
_colonne->add(indice,(TObject*)oggetto2);
|
_colonne->add(indice,(TObject*)oggetto2);
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TStatSogSosp::create()
|
bool TStatSogSosp::create()
|
||||||
@ -175,7 +175,7 @@ bool TStatSogSosp::create()
|
|||||||
_colonne = new TAssoc_array();
|
_colonne = new TAssoc_array();
|
||||||
_sospensioni = new TAssoc_array();
|
_sospensioni = new TAssoc_array();
|
||||||
dispatch_e_menu(BAR_ITEM(1));
|
dispatch_e_menu(BAR_ITEM(1));
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TStatSogSosp::destroy()
|
bool TStatSogSosp::destroy()
|
||||||
@ -208,7 +208,7 @@ bool TStatSogSosp::menu(MENU_TAG m)
|
|||||||
if (riepilogo())
|
if (riepilogo())
|
||||||
stampa();
|
stampa();
|
||||||
}
|
}
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TStatSogSosp::crea_intestazione()
|
void TStatSogSosp::crea_intestazione()
|
||||||
@ -284,7 +284,7 @@ bool TStatSogSosp::stampa()
|
|||||||
delete curstat;
|
delete curstat;
|
||||||
delete relstat;
|
delete relstat;
|
||||||
printer().close();
|
printer().close();
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -474,7 +474,7 @@ bool TStatSogSosp::riepilogo()
|
|||||||
filtro << " && ";
|
filtro << " && ";
|
||||||
//filtro << "((TCS->S6 == \"S\") || (TCS->S6 == \"B\"))";
|
//filtro << "((TCS->S6 == \"S\") || (TCS->S6 == \"B\"))";
|
||||||
filtro << "(TCS->S6 == \"S\")";
|
filtro << "(TCS->S6 == \"S\")";
|
||||||
_cur->setfilter((const char*) filtro, TRUE);
|
_cur->setfilter((const char*) filtro, true);
|
||||||
long numero, numero2; // numero sospesi, durata
|
long numero, numero2; // numero sospesi, durata
|
||||||
TString16 codsez, codsot, tiposos;
|
TString16 codsez, codsot, tiposos;
|
||||||
TDate dataini, datafin;
|
TDate dataini, datafin;
|
||||||
@ -484,7 +484,7 @@ bool TStatSogSosp::riepilogo()
|
|||||||
long codice = 0;
|
long codice = 0;
|
||||||
long durata = 0;
|
long durata = 0;
|
||||||
long last = _cur->items();
|
long last = _cur->items();
|
||||||
TProgind prg (last, "Elaborazione in corso... Prego attendere", FALSE, TRUE, 30);
|
TProgind prg (last, "Elaborazione in corso... Prego attendere", false, true, 30);
|
||||||
for ( *_cur=0; _cur->pos() < last; ++(*_cur) )
|
for ( *_cur=0; _cur->pos() < last; ++(*_cur) )
|
||||||
{
|
{
|
||||||
prg.addstatus(1);
|
prg.addstatus(1);
|
||||||
@ -499,7 +499,7 @@ bool TStatSogSosp::riepilogo()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (codice != 0)
|
if (codice != 0)
|
||||||
ok = TRUE;
|
ok = true;
|
||||||
codice = reccon.get_long(CON_CODICE);
|
codice = reccon.get_long(CON_CODICE);
|
||||||
tiposos = reccon.get(CON_TIPOCON);
|
tiposos = reccon.get(CON_TIPOCON);
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ bool TCom2prov_mask::on_field_event(TOperable_field& f, TField_event e, long jol
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -162,7 +162,7 @@ void TCom2prov::transfer()
|
|||||||
filtro << "(ANSI(" << SOG_DATAULTAGG << ")>=\"" << data.string(ANSI) << "\")";
|
filtro << "(ANSI(" << SOG_DATAULTAGG << ")>=\"" << data.string(ANSI) << "\")";
|
||||||
TCursor cursore(_rel, filtro, 3, &da, &da);
|
TCursor cursore(_rel, filtro, 3, &da, &da);
|
||||||
long records = cursore.items();
|
long records = cursore.items();
|
||||||
TProgind pi(records,"Estrazione dati", TRUE, TRUE);
|
TProgind pi(records,"Estrazione dati", true, true);
|
||||||
pi.setstatus(1);
|
pi.setstatus(1);
|
||||||
for (cursore = 0; cursore.pos() < records; ++(cursore))
|
for (cursore = 0; cursore.pos() < records; ++(cursore))
|
||||||
{
|
{
|
||||||
@ -173,7 +173,7 @@ void TCom2prov::transfer()
|
|||||||
filesog.write(cursore.curr());
|
filesog.write(cursore.curr());
|
||||||
if (donazioni)
|
if (donazioni)
|
||||||
{
|
{
|
||||||
bool continua = TRUE;
|
bool continua = true;
|
||||||
while (continua)
|
while (continua)
|
||||||
{
|
{
|
||||||
const long codice = cursore.curr(LF_DONAZ).get_long(DON_CODICE);
|
const long codice = cursore.curr(LF_DONAZ).get_long(DON_CODICE);
|
||||||
@ -184,7 +184,7 @@ void TCom2prov::transfer()
|
|||||||
}
|
}
|
||||||
if (controlli)
|
if (controlli)
|
||||||
{
|
{
|
||||||
bool continua = TRUE;
|
bool continua = true;
|
||||||
while (continua)
|
while (continua)
|
||||||
{
|
{
|
||||||
const long codice = cursore.curr(LF_CONTSAN).get_long(CON_CODICE);
|
const long codice = cursore.curr(LF_CONTSAN).get_long(CON_CODICE);
|
||||||
@ -192,7 +192,7 @@ void TCom2prov::transfer()
|
|||||||
filecon.write(cursore.curr(LF_CONTSAN));
|
filecon.write(cursore.curr(LF_CONTSAN));
|
||||||
continua = cursore.next_match(LF_CONTSAN, "CODICE");
|
continua = cursore.next_match(LF_CONTSAN, "CODICE");
|
||||||
}
|
}
|
||||||
continua = TRUE;
|
continua = true;
|
||||||
while (continua)
|
while (continua)
|
||||||
{
|
{
|
||||||
const long codice = cursore.curr(LF_IDONEITA).get_long(IDO_CODICE);
|
const long codice = cursore.curr(LF_IDONEITA).get_long(IDO_CODICE);
|
||||||
@ -203,7 +203,7 @@ void TCom2prov::transfer()
|
|||||||
}
|
}
|
||||||
if (benemerenze)
|
if (benemerenze)
|
||||||
{
|
{
|
||||||
bool continua = TRUE;
|
bool continua = true;
|
||||||
while (continua)
|
while (continua)
|
||||||
{
|
{
|
||||||
const long codice = cursore.curr(LF_BENEM).get_long(BEN_CODICE);
|
const long codice = cursore.curr(LF_BENEM).get_long(BEN_CODICE);
|
||||||
@ -214,7 +214,7 @@ void TCom2prov::transfer()
|
|||||||
}
|
}
|
||||||
if (storico)
|
if (storico)
|
||||||
{
|
{
|
||||||
bool continua = TRUE;
|
bool continua = true;
|
||||||
while (continua)
|
while (continua)
|
||||||
{
|
{
|
||||||
const long codice = cursore.curr(LF_STORICO).get_long(STO_CODICE);
|
const long codice = cursore.curr(LF_STORICO).get_long(STO_CODICE);
|
||||||
|
@ -176,12 +176,12 @@ void TProv2com::transfer()
|
|||||||
TString80 nomesto = percorso;
|
TString80 nomesto = percorso;
|
||||||
nomesto << "STORICO";
|
nomesto << "STORICO";
|
||||||
|
|
||||||
_filesog = new TIsamtempfile(LF_SOGGETTI, (const char *) nomesog, FALSE);
|
_filesog = new TIsamtempfile(LF_SOGGETTI, (const char *) nomesog, false);
|
||||||
_filecon = new TIsamtempfile(LF_CONTSAN, (const char*) nomecon, FALSE);
|
_filecon = new TIsamtempfile(LF_CONTSAN, (const char*) nomecon, false);
|
||||||
_filedon = new TIsamtempfile(LF_DONAZ, (const char* ) nomedon, FALSE);
|
_filedon = new TIsamtempfile(LF_DONAZ, (const char* ) nomedon, false);
|
||||||
_fileido = new TIsamtempfile(LF_IDONEITA, (const char*) nomeido, FALSE);
|
_fileido = new TIsamtempfile(LF_IDONEITA, (const char*) nomeido, false);
|
||||||
_fileben = new TIsamtempfile(LF_BENEM, (const char*) nomeben, FALSE);
|
_fileben = new TIsamtempfile(LF_BENEM, (const char*) nomeben, false);
|
||||||
_filesto = new TIsamtempfile(LF_STORICO, (const char*) nomesto, FALSE);
|
_filesto = new TIsamtempfile(LF_STORICO, (const char*) nomesto, false);
|
||||||
_rel = new TRelation(LF_SOGGETTI);
|
_rel = new TRelation(LF_SOGGETTI);
|
||||||
|
|
||||||
_reltmp = new TRelation(LF_SOGGETTI);
|
_reltmp = new TRelation(LF_SOGGETTI);
|
||||||
@ -212,7 +212,7 @@ void TProv2com::transfer()
|
|||||||
//anagrafica = (anagrafica || donazioni || controlli || benemerenze || storico);
|
//anagrafica = (anagrafica || donazioni || controlli || benemerenze || storico);
|
||||||
TCursor cursore(_reltmp);
|
TCursor cursore(_reltmp);
|
||||||
long records = cursore.items();
|
long records = cursore.items();
|
||||||
TProgind pi(records,"Aggiornamento archivi", TRUE, TRUE);
|
TProgind pi(records,"Aggiornamento archivi", true, true);
|
||||||
pi.setstatus(1);
|
pi.setstatus(1);
|
||||||
for (cursore = 0; cursore.pos() < records; ++(cursore))
|
for (cursore = 0; cursore.pos() < records; ++(cursore))
|
||||||
{
|
{
|
||||||
@ -222,7 +222,7 @@ void TProv2com::transfer()
|
|||||||
agg_anagrafica(cursore.curr(), anagrafica);
|
agg_anagrafica(cursore.curr(), anagrafica);
|
||||||
if (donazioni)
|
if (donazioni)
|
||||||
{
|
{
|
||||||
bool continua = TRUE;
|
bool continua = true;
|
||||||
while (continua)
|
while (continua)
|
||||||
{
|
{
|
||||||
const long codice = cursore.curr(LF_DONAZ).get_long(DON_CODICE);
|
const long codice = cursore.curr(LF_DONAZ).get_long(DON_CODICE);
|
||||||
@ -233,7 +233,7 @@ void TProv2com::transfer()
|
|||||||
}
|
}
|
||||||
if (controlli)
|
if (controlli)
|
||||||
{
|
{
|
||||||
bool continua = TRUE;
|
bool continua = true;
|
||||||
while (continua)
|
while (continua)
|
||||||
{
|
{
|
||||||
const long codice = cursore.curr(LF_CONTSAN).get_long(CON_CODICE);
|
const long codice = cursore.curr(LF_CONTSAN).get_long(CON_CODICE);
|
||||||
@ -241,7 +241,7 @@ void TProv2com::transfer()
|
|||||||
agg_controllo(cursore.curr(), cursore.curr(LF_CONTSAN));
|
agg_controllo(cursore.curr(), cursore.curr(LF_CONTSAN));
|
||||||
continua = cursore.next_match(LF_CONTSAN, "CODICE");
|
continua = cursore.next_match(LF_CONTSAN, "CODICE");
|
||||||
}
|
}
|
||||||
continua = TRUE;
|
continua = true;
|
||||||
while (continua)
|
while (continua)
|
||||||
{
|
{
|
||||||
const long codice = cursore.curr(LF_IDONEITA).get_long(IDO_CODICE);
|
const long codice = cursore.curr(LF_IDONEITA).get_long(IDO_CODICE);
|
||||||
@ -254,7 +254,7 @@ void TProv2com::transfer()
|
|||||||
}
|
}
|
||||||
if (benemerenze)
|
if (benemerenze)
|
||||||
{
|
{
|
||||||
bool continua = TRUE;
|
bool continua = true;
|
||||||
while (continua)
|
while (continua)
|
||||||
{
|
{
|
||||||
const long codice = cursore.curr(LF_BENEM).get_long(BEN_CODICE);
|
const long codice = cursore.curr(LF_BENEM).get_long(BEN_CODICE);
|
||||||
@ -265,7 +265,7 @@ void TProv2com::transfer()
|
|||||||
}
|
}
|
||||||
if (storico)
|
if (storico)
|
||||||
{
|
{
|
||||||
bool continua = TRUE;
|
bool continua = true;
|
||||||
while (continua)
|
while (continua)
|
||||||
{
|
{
|
||||||
const long codice = cursore.curr(LF_STORICO).get_long(STO_CODICE);
|
const long codice = cursore.curr(LF_STORICO).get_long(STO_CODICE);
|
||||||
@ -288,7 +288,7 @@ void TProv2com::print_line(const TString& message)
|
|||||||
|
|
||||||
void TProv2com::agg_anagrafica(const TRectype& recsog, const bool aggiorna)
|
void TProv2com::agg_anagrafica(const TRectype& recsog, const bool aggiorna)
|
||||||
{
|
{
|
||||||
_print_header = FALSE;
|
_print_header = false;
|
||||||
TString intestazione = "";
|
TString intestazione = "";
|
||||||
TString message = "";
|
TString message = "";
|
||||||
const TString80 cognome = recsog.get(SOG_COGNOME);
|
const TString80 cognome = recsog.get(SOG_COGNOME);
|
||||||
@ -305,7 +305,7 @@ void TProv2com::agg_anagrafica(const TRectype& recsog, const bool aggiorna)
|
|||||||
intestazione << nome;
|
intestazione << nome;
|
||||||
intestazione << " ";
|
intestazione << " ";
|
||||||
intestazione << datanasc.string();
|
intestazione << datanasc.string();
|
||||||
bool confronta = TRUE;
|
bool confronta = true;
|
||||||
if (!aggiorna)
|
if (!aggiorna)
|
||||||
{
|
{
|
||||||
_soggetti->read(rec);
|
_soggetti->read(rec);
|
||||||
@ -319,7 +319,7 @@ void TProv2com::agg_anagrafica(const TRectype& recsog, const bool aggiorna)
|
|||||||
{
|
{
|
||||||
const char xcatdon = _configfile->get(catdon, "CATDON")[0];
|
const char xcatdon = _configfile->get(catdon, "CATDON")[0];
|
||||||
if (xcatdon != X_SOS_CONAVVISO)
|
if (xcatdon != X_SOS_CONAVVISO)
|
||||||
confronta = FALSE;
|
confronta = false;
|
||||||
}
|
}
|
||||||
if (confronta)
|
if (confronta)
|
||||||
{
|
{
|
||||||
@ -340,7 +340,7 @@ void TProv2com::agg_anagrafica(const TRectype& recsog, const bool aggiorna)
|
|||||||
{
|
{
|
||||||
print_line();
|
print_line();
|
||||||
print_line(intestazione);
|
print_line(intestazione);
|
||||||
_print_header = TRUE;
|
_print_header = true;
|
||||||
}
|
}
|
||||||
switch (operazione)
|
switch (operazione)
|
||||||
{
|
{
|
||||||
@ -444,7 +444,7 @@ void TProv2com::agg_donazione(const TRectype& recsog, const TRectype& recdon)
|
|||||||
{
|
{
|
||||||
print_line();
|
print_line();
|
||||||
print_line(intestazione);
|
print_line(intestazione);
|
||||||
_print_header = TRUE;
|
_print_header = true;
|
||||||
}
|
}
|
||||||
message = " INSERITA DONAZIONE in data ";
|
message = " INSERITA DONAZIONE in data ";
|
||||||
message << datadon.string();
|
message << datadon.string();
|
||||||
@ -507,7 +507,7 @@ void TProv2com::agg_controllo(const TRectype& recsog, const TRectype& reccon)
|
|||||||
{
|
{
|
||||||
print_line();
|
print_line();
|
||||||
print_line(intestazione);
|
print_line(intestazione);
|
||||||
_print_header = TRUE;
|
_print_header = true;
|
||||||
}
|
}
|
||||||
const char* tipocon = reccon.get(CON_TIPOCON);
|
const char* tipocon = reccon.get(CON_TIPOCON);
|
||||||
message.format(" INSERITO CONTROLLO %s in data %s", tipocon, datacon.string());
|
message.format(" INSERITO CONTROLLO %s in data %s", tipocon, datacon.string());
|
||||||
@ -565,7 +565,7 @@ void TProv2com::agg_benemerenza(const TRectype& recsog, const TRectype& recben)
|
|||||||
{
|
{
|
||||||
print_line();
|
print_line();
|
||||||
print_line(intestazione);
|
print_line(intestazione);
|
||||||
_print_header = TRUE;
|
_print_header = true;
|
||||||
}
|
}
|
||||||
message.format(" INSERITA BENEMERENZA %s", (const char*) tipoben);
|
message.format(" INSERITA BENEMERENZA %s", (const char*) tipoben);
|
||||||
print_line(message);
|
print_line(message);
|
||||||
@ -617,7 +617,7 @@ void TProv2com::agg_storico(const TRectype& recsog, const TRectype& recsto)
|
|||||||
{
|
{
|
||||||
print_line();
|
print_line();
|
||||||
print_line(intestazione);
|
print_line(intestazione);
|
||||||
_print_header = TRUE;
|
_print_header = true;
|
||||||
}
|
}
|
||||||
message.format(" INSERITA RIGA DI STORICO");
|
message.format(" INSERITA RIGA DI STORICO");
|
||||||
print_line(message);
|
print_line(message);
|
||||||
|
@ -78,7 +78,7 @@ bool TReconstruction::create()
|
|||||||
_intsi_m = config.get_int("IntSI_M");
|
_intsi_m = config.get_int("IntSI_M");
|
||||||
_intaf_m = config.get_int("IntAF_M");
|
_intaf_m = config.get_int("IntAF_M");
|
||||||
dispatch_e_menu(BAR_ITEM(1));
|
dispatch_e_menu(BAR_ITEM(1));
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TReconstruction::destroy()
|
bool TReconstruction::destroy()
|
||||||
@ -111,17 +111,17 @@ static int compare_date(const TObject** o1, const TObject** o2)
|
|||||||
|
|
||||||
bool TReconstruction::menu(MENU_TAG m)
|
bool TReconstruction::menu(MENU_TAG m)
|
||||||
{
|
{
|
||||||
bool _calcolacat = FALSE;
|
bool _calcolacat = false;
|
||||||
|
|
||||||
KEY tasto = _msk->run();
|
KEY tasto = _msk->run();
|
||||||
if (tasto == K_ENTER)
|
if (tasto == K_ENTER)
|
||||||
{
|
{
|
||||||
TLocalisamfile rconvoc(LF_RCONVOC);
|
TLocalisamfile rconvoc(LF_RCONVOC);
|
||||||
_rel->lfile().setkey(1);
|
_rel->lfile().setkey(1);
|
||||||
bool modificato = FALSE;
|
bool modificato = false;
|
||||||
TDate oggi(TODAY);
|
TDate oggi(TODAY);
|
||||||
TRectype& recsog = _rel->curr();
|
TRectype& recsog = _rel->curr();
|
||||||
TProgind pi(_rel->items(),"Aggiornamento situazione soggetti da appoggio", TRUE, TRUE, 10);
|
TProgind pi(_rel->items(),"Aggiornamento situazione soggetti da appoggio", true, true, 10);
|
||||||
pi.setstatus(1);
|
pi.setstatus(1);
|
||||||
for (_rel->first(); _rel->ok(); _rel->next())
|
for (_rel->first(); _rel->ok(); _rel->next())
|
||||||
{
|
{
|
||||||
@ -198,7 +198,7 @@ bool TReconstruction::menu(MENU_TAG m)
|
|||||||
rconvoc.put(RCV_DATACONV, recsog.get(SOG_DATACONV));
|
rconvoc.put(RCV_DATACONV, recsog.get(SOG_DATACONV));
|
||||||
if (rconvoc.read() == NOERR)
|
if (rconvoc.read() == NOERR)
|
||||||
{
|
{
|
||||||
rconvoc.put(RCV_ANNULLATO, TRUE);
|
rconvoc.put(RCV_ANNULLATO, true);
|
||||||
int err = rconvoc.write();
|
int err = rconvoc.write();
|
||||||
}
|
}
|
||||||
const TDate datanulla(NULLDATE);
|
const TDate datanulla(NULLDATE);
|
||||||
@ -212,7 +212,7 @@ bool TReconstruction::menu(MENU_TAG m)
|
|||||||
recsog.rewrite(_rel->lfile());
|
recsog.rewrite(_rel->lfile());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int TReconstruction::write(TSheet_field& s)
|
int TReconstruction::write(TSheet_field& s)
|
||||||
|
@ -17,7 +17,20 @@ public:
|
|||||||
|
|
||||||
bool TMaskModInt::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
bool TMaskModInt::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
return TRUE;
|
switch (o.dlg())
|
||||||
|
{
|
||||||
|
case F_S_REPORT:
|
||||||
|
if (e == fe_button)
|
||||||
|
{
|
||||||
|
TFilename path = "at95*";
|
||||||
|
if (select_custom_file(path,"rep"))
|
||||||
|
o.set(path.name());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
class TTModInt : public TSkeleton_application
|
class TTModInt : public TSkeleton_application
|
||||||
@ -38,8 +51,7 @@ void TTModInt::main_loop()
|
|||||||
{
|
{
|
||||||
TReport_book book;
|
TReport_book book;
|
||||||
TReport rep;
|
TReport rep;
|
||||||
TFilename report_name("at9500b");
|
TFilename report_name(m.get(F_S_REPORT));
|
||||||
|
|
||||||
report_name.ext("rep");
|
report_name.ext("rep");
|
||||||
report_name.custom_path();
|
report_name.custom_path();
|
||||||
if (rep.load(report_name))
|
if (rep.load(report_name))
|
||||||
|
16
at/at9500a.h
16
at/at9500a.h
@ -7,12 +7,14 @@
|
|||||||
#define F_S_CODSOT 106
|
#define F_S_CODSOT 106
|
||||||
#define F_S_CATDON 107
|
#define F_S_CATDON 107
|
||||||
#define F_S_TESSAVIS 108
|
#define F_S_TESSAVIS 108
|
||||||
#define F_S_TESTO1 109
|
#define F_S_REPORT 109
|
||||||
#define F_S_TESTO2 110
|
|
||||||
#define F_S_TESTO3 111
|
|
||||||
#define F_S_TESTO4 112
|
|
||||||
#define F_S_TESTO5 113
|
|
||||||
|
|
||||||
#define F_S_DENSEZ 211
|
#define F_S_TESTO1 110
|
||||||
#define F_S_DENSOT 212
|
#define F_S_TESTO2 111
|
||||||
|
#define F_S_TESTO3 112
|
||||||
|
#define F_S_TESTO4 113
|
||||||
|
#define F_S_TESTO5 114
|
||||||
|
|
||||||
|
#define F_S_DENSEZ 211
|
||||||
|
#define F_S_DENSOT 212
|
||||||
#define F_S_DESC_CATDON 213
|
#define F_S_DESC_CATDON 213
|
||||||
|
@ -153,31 +153,38 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
// SCELTA REPORT
|
||||||
|
STRING F_S_REPORT 32
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Modulo "
|
||||||
|
FLAGS "B"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_S_TESTO1 70
|
STRING F_S_TESTO1 70
|
||||||
BEGIN
|
|
||||||
PROMPT 2 9 ""
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_S_TESTO2 70
|
|
||||||
BEGIN
|
|
||||||
PROMPT 2 10 ""
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_S_TESTO3 70
|
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 ""
|
PROMPT 2 11 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_S_TESTO4 70
|
STRING F_S_TESTO2 70
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 12 ""
|
PROMPT 2 12 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_S_TESTO5 70
|
STRING F_S_TESTO3 70
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 13 ""
|
PROMPT 2 13 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_S_TESTO4 70
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 14 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_S_TESTO5 70
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 15 ""
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
|
26
at/atmsk.bat
26
at/atmsk.bat
@ -1,26 +0,0 @@
|
|||||||
call mskcomp at0100a
|
|
||||||
call mskcomp at0200a
|
|
||||||
call mskcomp at0300a
|
|
||||||
call mskcomp at0700a
|
|
||||||
call mskcomp at0800a
|
|
||||||
call mskcomp at1100a
|
|
||||||
call mskcomp at1200a
|
|
||||||
call mskcomp at2100a
|
|
||||||
call mskcomp at2200a
|
|
||||||
call mskcomp at2300a
|
|
||||||
call mskcomp at2400a
|
|
||||||
call mskcomp at2500a
|
|
||||||
call mskcomp at2600a
|
|
||||||
call mskcomp at3100a
|
|
||||||
call mskcomp at3200a
|
|
||||||
call mskcomp at3300a
|
|
||||||
call mskcomp at3400a
|
|
||||||
call mskcomp at4100a
|
|
||||||
call mskcomp batbbnz
|
|
||||||
call mskcomp batbctd
|
|
||||||
call mskcomp batbctn
|
|
||||||
call mskcomp batbido
|
|
||||||
call mskcomp batblcp
|
|
||||||
call mskcomp batbldn
|
|
||||||
call mskcomp batbtcs
|
|
||||||
call mskcomp batbtdn
|
|
@ -4,6 +4,7 @@
|
|||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
#include <controls.h>
|
#include <controls.h>
|
||||||
#include <dongle.h>
|
#include <dongle.h>
|
||||||
|
#include <execp.h>
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include <execp.h>
|
#include <execp.h>
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
@ -65,7 +66,9 @@ protected:
|
|||||||
int do_level();
|
int do_level();
|
||||||
int do_tree();
|
int do_tree();
|
||||||
int do_explore();
|
int do_explore();
|
||||||
|
|
||||||
|
int get_user_status(const char* usr) const;
|
||||||
|
bool set_user_status(const char* usr, int status) const;
|
||||||
bool check_user();
|
bool check_user();
|
||||||
|
|
||||||
static bool menu_item_handler(TMask_field& f, KEY k);
|
static bool menu_item_handler(TMask_field& f, KEY k);
|
||||||
@ -1066,6 +1069,61 @@ bool TMenu_application::ask_user_password(TString& utente)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testa stato utente: 0 inesistente; 1 = esiste; 2 connesso; 4 conversione in corso
|
||||||
|
// ATTENZIONE: non usare mai cache() in ba0!
|
||||||
|
int TMenu_application::get_user_status(const char* usr) const
|
||||||
|
{
|
||||||
|
CHECK(usr && *usr, "Utente nullo");
|
||||||
|
|
||||||
|
int status = 0;
|
||||||
|
if (prefix_valid())
|
||||||
|
{
|
||||||
|
TLocalisamfile utonti(LF_USER);
|
||||||
|
utonti.put(USR_USERNAME, usr);
|
||||||
|
status = utonti.read() == NOERR;
|
||||||
|
if (status)
|
||||||
|
{
|
||||||
|
if (utonti.get_bool(USR_CONNECTED))
|
||||||
|
status |= 2;
|
||||||
|
if (dongle().administrator() == usr && utonti.get(USR_AUTSTR) == "CONVERTING")
|
||||||
|
status |= 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Senza file aperti questo e' il massimo che posso fare
|
||||||
|
status = dongle().administrator() == usr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TMenu_application::set_user_status(const char* usr, int status) const
|
||||||
|
{
|
||||||
|
CHECK(usr && *usr, "Utente nullo");
|
||||||
|
|
||||||
|
bool ok = false;
|
||||||
|
if (prefix_valid())
|
||||||
|
{
|
||||||
|
TLocalisamfile utonti(LF_USER);
|
||||||
|
utonti.put(USR_USERNAME, usr);
|
||||||
|
if (utonti.read(_isequal, _lock) == NOERR)
|
||||||
|
{
|
||||||
|
utonti.put(USR_CONNECTED, status & 2 ? "X" : "");
|
||||||
|
ok = utonti.rewrite() == NOERR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (status & 2)
|
||||||
|
{
|
||||||
|
// Memorizza utente per riproporlo la prossima volta
|
||||||
|
TConfig campo_ini(CONFIG_INSTALL, "Main");
|
||||||
|
campo_ini.set("User", usr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TMenu_application::check_user()
|
bool TMenu_application::check_user()
|
||||||
{
|
{
|
||||||
bool ok = dongle().type() == _no_dongle;
|
bool ok = dongle().type() == _no_dongle;
|
||||||
@ -1078,7 +1136,7 @@ bool TMenu_application::check_user()
|
|||||||
TConfig campo_ini(CONFIG_INSTALL, "Main");
|
TConfig campo_ini(CONFIG_INSTALL, "Main");
|
||||||
const bool use_system_user = campo_ini.get_bool("AutoLogin");
|
const bool use_system_user = campo_ini.get_bool("AutoLogin");
|
||||||
if (use_system_user)
|
if (use_system_user)
|
||||||
ok = !cache().get(LF_USER, utente).empty();
|
†ok = get_user_status(utente) != 0; // L'utente esiste!
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ok)
|
if (!ok)
|
||||||
@ -1086,8 +1144,8 @@ bool TMenu_application::check_user()
|
|||||||
|
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
const TString& autstr = cache().get(LF_USER, dongle().administrator(), USR_AUTSTR);
|
††const bool converting = (get_user_status(dongle().administrator()) & 4) != 0;
|
||||||
if (autstr == "CONVERTING")
|
††if (converting)
|
||||||
{
|
{
|
||||||
TString msg; msg << TR("E' in corso una conversione archivi") << ":\n";
|
TString msg; msg << TR("E' in corso una conversione archivi") << ":\n";
|
||||||
if (utente == dongle().administrator())
|
if (utente == dongle().administrator())
|
||||||
@ -1103,13 +1161,7 @@ bool TMenu_application::check_user()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
†† set_user_status(utente, 3); // Esistente e connesso (1 | 2 = 3)
|
||||||
dongle().logout();
|
|
||||||
user() = utente;
|
|
||||||
ok = get_serial_number() >= 0;
|
|
||||||
if (!ok)
|
|
||||||
error_box(TR("Probabilmente è stato superato il numero massimo di utenti"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
@ -1305,17 +1357,8 @@ bool TMenu_application::user_create()
|
|||||||
|
|
||||||
void TMenu_application::deconnect_user()
|
void TMenu_application::deconnect_user()
|
||||||
{
|
{
|
||||||
if (prefix_valid())
|
if (get_user_status(user()) & 2) // Se e' connesso
|
||||||
{
|
set_user_status(user(), 1); // Sconnettilo
|
||||||
TLocalisamfile users(LF_USER);
|
|
||||||
users.put("USERNAME", user());
|
|
||||||
const int err = users.read(_isequal, _lock);
|
|
||||||
if (err == NOERR)
|
|
||||||
{
|
|
||||||
users.zero("CONNECTED");
|
|
||||||
users.rewrite();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TMenu_application::destroy()
|
bool TMenu_application::destroy()
|
||||||
|
@ -382,9 +382,9 @@ void TSubmenu::read(TScanner& scanner)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (disable)
|
|
||||||
_enabled = false;
|
|
||||||
}
|
}
|
||||||
|
if (disable)
|
||||||
|
_enabled = false;
|
||||||
} else
|
} else
|
||||||
if (line.starts_with("Picture", true))
|
if (line.starts_with("Picture", true))
|
||||||
{
|
{
|
||||||
|
@ -664,6 +664,9 @@ void TMenulist_window::click_on(int index)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
mi.perform();
|
mi.perform();
|
||||||
|
//se installa si suicida
|
||||||
|
if (installing())
|
||||||
|
owner().mask().stop_run(K_FORCE_CLOSE);
|
||||||
}
|
}
|
||||||
set_focus();
|
set_focus();
|
||||||
}
|
}
|
||||||
|
@ -1348,6 +1348,9 @@ bool TAttivazione_moduli::create()
|
|||||||
|
|
||||||
ok = TApplication::test_assistance_year();
|
ok = TApplication::test_assistance_year();
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
|
// Backdoor nascosta per la cifratura del dninst.zip
|
||||||
|
// Mettere nella cartella dei programi il file dninst.txt ...
|
||||||
|
// ... e nascera' in automagico il file dninst.zip per Luca
|
||||||
if (ok && argc() > 2 && strcmp(argv(2), "-dninst") == 0)
|
if (ok && argc() > 2 && strcmp(argv(2), "-dninst") == 0)
|
||||||
ok = false;
|
ok = false;
|
||||||
#endif
|
#endif
|
||||||
|
@ -461,8 +461,9 @@ bool TInstaller_mask::autoload()
|
|||||||
installini.list_paragraphs(paragrafi);
|
installini.list_paragraphs(paragrafi);
|
||||||
//settaggio del produttore sull'install.ini locale nel caso sia cambiato..
|
//settaggio del produttore sull'install.ini locale nel caso sia cambiato..
|
||||||
//..ovvero ad ogni nuova versione prassi..no partners..cioe' doubleone..volevo dire sirio..
|
//..ovvero ad ogni nuova versione prassi..no partners..cioe' doubleone..volevo dire sirio..
|
||||||
//const TString& local_producer = installini.get("Producer", "Main");
|
if (producer.full())
|
||||||
installini.set("Producer", (const char*)producer, "Main");
|
installini.set("Producer", (const char*)producer, "Main");
|
||||||
|
|
||||||
FOR_EACH_ARRAY_ROW(modules, am, arow)
|
FOR_EACH_ARRAY_ROW(modules, am, arow)
|
||||||
{
|
{
|
||||||
file = *arow;
|
file = *arow;
|
||||||
|
@ -324,6 +324,8 @@ void TReport_properties_mask::set_report(const TReport& r)
|
|||||||
set(F_INCLUDE, ((TReport&)r).get_libraries());
|
set(F_INCLUDE, ((TReport&)r).get_libraries());
|
||||||
set(F_PRESCRIPT, r.prescript());
|
set(F_PRESCRIPT, r.prescript());
|
||||||
set(F_POSTSCRIPT, r.postscript());
|
set(F_POSTSCRIPT, r.postscript());
|
||||||
|
set(F_PAGE_SPLIT, r.page_split_allowed());
|
||||||
|
set(F_PAGE_MERGE, r.page_merge_allowed());
|
||||||
|
|
||||||
sfield(F_PARAMS).rows_array() = r.params();
|
sfield(F_PARAMS).rows_array() = r.params();
|
||||||
sfield(F_LINK).rows_array() = r.allegates();
|
sfield(F_LINK).rows_array() = r.allegates();
|
||||||
@ -357,6 +359,9 @@ void TReport_properties_mask::get_report(TReport& r) const
|
|||||||
|
|
||||||
r.set_params(sfield(F_PARAMS).rows_array());
|
r.set_params(sfield(F_PARAMS).rows_array());
|
||||||
r.set_allegates(sfield(F_LINK).rows_array());
|
r.set_allegates(sfield(F_LINK).rows_array());
|
||||||
|
|
||||||
|
r.allow_page_split(get_bool(F_PAGE_SPLIT));
|
||||||
|
r.allow_page_merge(get_bool(F_PAGE_MERGE));
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -55,7 +55,9 @@
|
|||||||
#define F_CAN_BREAK 168
|
#define F_CAN_BREAK 168
|
||||||
#define F_ORIENTATION 169
|
#define F_ORIENTATION 169
|
||||||
#define F_CLASS 170
|
#define F_CLASS 170
|
||||||
#define F_COMMAND 171
|
#define F_COMMAND 171
|
||||||
|
#define F_PAGE_SPLIT 172
|
||||||
|
#define F_PAGE_MERGE 173
|
||||||
|
|
||||||
|
|
||||||
#define F_SQL 201
|
#define F_SQL 201
|
||||||
|
@ -24,16 +24,26 @@ BEGIN
|
|||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_PAGE_SPLIT
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 1 "Suddividi una pagina su piu' fogli"
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_PAGE_MERGE
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 2 "Raggruppa piu' pagine in un foglio"
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER F_DY 2
|
NUMBER F_DY 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "Linee per pollice "
|
PROMPT 26 3 "Linee per pollice "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON F_FONT_SELECT 12 2
|
BUTTON F_FONT_SELECT 12 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "~Font"
|
PROMPT 26 4 "~Font"
|
||||||
END
|
END
|
||||||
|
|
||||||
MEMO F_INCLUDE 57 3
|
MEMO F_INCLUDE 57 3
|
||||||
@ -67,7 +77,7 @@ PAGE "Parametri" -1 -1 60 16
|
|||||||
|
|
||||||
SPREADSHEET F_PARAMS 0 -3
|
SPREADSHEET F_PARAMS 0 -3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 ""
|
PROMPT 1 6 ""
|
||||||
ITEM "Parametro@16"
|
ITEM "Parametro@16"
|
||||||
ITEM "Valore@50"
|
ITEM "Valore@50"
|
||||||
END
|
END
|
||||||
|
@ -185,13 +185,13 @@ public:
|
|||||||
|
|
||||||
bool TGoogle_app::create()
|
bool TGoogle_app::create()
|
||||||
{
|
{
|
||||||
TConfig ini("servers/servers.ini", "Spotlight");
|
TConfig ini("servers/servers.ini", "Spotlite");
|
||||||
TFilename name = ini.get("Data");
|
TFilename name = ini.get("Data");
|
||||||
bool ok = name.exist();
|
bool ok = name.exist();
|
||||||
if (!ok)
|
if (!ok)
|
||||||
{
|
{
|
||||||
name = firm2dir(-1);
|
name = firm2dir(-1);
|
||||||
name.add("spotlight");
|
name.add("spotlite");
|
||||||
TString msg;
|
TString msg;
|
||||||
msg << TR("Il server di archiviazione non e' configurato")
|
msg << TR("Il server di archiviazione non e' configurato")
|
||||||
<< ":\n" << TR("si desidera usare la seguente cartella?")
|
<< ":\n" << TR("si desidera usare la seguente cartella?")
|
||||||
|
@ -4,7 +4,7 @@ PAGE "Installazione VE" -1 -1 78 8
|
|||||||
|
|
||||||
BOOL F_DEFAULTSDATA
|
BOOL F_DEFAULTSDATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Carica le tabelle con i tipi documento"
|
PROMPT 2 2 "Carica le tabelle del modulo Vendite"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
|
@ -4,7 +4,7 @@ PAGE "Installazione MG" -1 -1 78 8
|
|||||||
|
|
||||||
BOOL F_DEFAULTSDATA
|
BOOL F_DEFAULTSDATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Carica le tabelle con le causali"
|
PROMPT 2 2 "Carica le tabelle del modulo Magazzino"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
|
@ -26,6 +26,7 @@ Item_07 = "Stampa anagrafiche", "ba6 -0", ""
|
|||||||
Item_08 = "Stampa tabelle", [MENU_003]
|
Item_08 = "Stampa tabelle", [MENU_003]
|
||||||
Item_09 = "Stampa tabelle ministeriali", [MENU_012]
|
Item_09 = "Stampa tabelle ministeriali", [MENU_012]
|
||||||
Item_10 = "Stampa fogli libri bollati", "ba3 -2", "F"
|
Item_10 = "Stampa fogli libri bollati", "ba3 -2", "F"
|
||||||
|
Item_11 = "Moduli aggiuntivi", <baaddon.men>
|
||||||
|
|
||||||
[MENU_002]
|
[MENU_002]
|
||||||
Caption = "Tabelle"
|
Caption = "Tabelle"
|
||||||
@ -33,16 +34,16 @@ Picture = <ba02>
|
|||||||
Module = 0
|
Module = 0
|
||||||
Flags = ""
|
Flags = ""
|
||||||
Item_01 = "Codici IVA", "ba3 -0 %iva", ""
|
Item_01 = "Codici IVA", "ba3 -0 %iva", ""
|
||||||
Item_02 = "Codici Attivita'", "ba3 -0 %ais", ""
|
Item_02 = "Indetraibiltà", "ba3 -0 %det", ""
|
||||||
Item_03 = "Condizioni di pagamento", "ba3 -6", ""
|
Item_03 = "Codici Attivita'", "ba3 -0 %ais", ""
|
||||||
Item_04 = "Classificazione pagamenti", "ba3 -0 %clr", ""
|
Item_04 = "Condizioni di pagamento", "ba3 -6", ""
|
||||||
Item_05 = "Libri sociali", "ba3 -0 %itl", ""
|
Item_05 = "Classificazione pagamenti", "ba3 -0 %clr", ""
|
||||||
Item_06 = "Banche", "ba3 -0 %ban", ""
|
Item_06 = "Libri sociali", "ba3 -0 %itl", ""
|
||||||
Item_07 = "Codici statistici", "ba3 -0 %stt", ""
|
Item_07 = "Banche", "ba3 -0 %ban", ""
|
||||||
Item_08 = "Cariche sociali", "ba3 -0 %crs", ""
|
Item_08 = "Codici statistici", "ba3 -0 %stt", ""
|
||||||
Item_09 = "Vecchi cod.Attivita'", "ba3 -0 %ois", ""
|
Item_09 = "Cariche sociali", "ba3 -0 %crs", ""
|
||||||
Item_10 = "Stati", "ba3 -0 %sta", ""
|
Item_10 = "Vecchi cod.Attivita'", "ba3 -0 %ois", ""
|
||||||
Item_11 = "Indetraibiltà", "ba3 -0 %det", ""
|
Item_11 = "Stati", "ba3 -0 %sta", ""
|
||||||
|
|
||||||
[MENU_003]
|
[MENU_003]
|
||||||
Caption = "Stampa tabelle"
|
Caption = "Stampa tabelle"
|
||||||
@ -102,7 +103,7 @@ Caption = "Manutenzione"
|
|||||||
Picture = <ba04>
|
Picture = <ba04>
|
||||||
Module = 0
|
Module = 0
|
||||||
Flags = ""
|
Flags = ""
|
||||||
Item_01 = "Archivi", "ba1", ""
|
Item_01 = "Archivi", "ba1 -0", ""
|
||||||
Item_02 = "Compatta tutti i files", "ba1 -2", ""
|
Item_02 = "Compatta tutti i files", "ba1 -2", ""
|
||||||
Item_03 = "Utenti", "ba1 -3", ""
|
Item_03 = "Utenti", "ba1 -3", ""
|
||||||
Item_04 = "Attivazione moduli", "ba1 -4", ""
|
Item_04 = "Attivazione moduli", "ba1 -4", ""
|
||||||
|
@ -130,50 +130,49 @@ END
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 40 4
|
GROUPBOX DLG_NULL 14 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 6 "@bColonne per allegati imponibili"
|
PROMPT 3 6 "@bMod. 101/102"
|
||||||
END
|
|
||||||
|
|
||||||
LIST FLD_TABIVA_S7 1 24
|
|
||||||
BEGIN
|
|
||||||
PROMPT 4 7 "Clienti "
|
|
||||||
FIELD S7
|
|
||||||
HELP "Inserire il numero della colonna degli allegati clienti relativa all'imposta"
|
|
||||||
ITEM " |Non in allegato"
|
|
||||||
ITEM "1|Imponibili"
|
|
||||||
ITEM "2|Non imponibili"
|
|
||||||
ITEM "3|Senza applicaz.imposta"
|
|
||||||
END
|
|
||||||
|
|
||||||
LIST FLD_TABIVA_S8 1 24
|
|
||||||
BEGIN
|
|
||||||
PROMPT 4 8 "Fornitori "
|
|
||||||
FIELD S8
|
|
||||||
HELP "Inserire il numero della colonna degli allegati fornitori relativa all'imposta"
|
|
||||||
ITEM " |Non in allegato"
|
|
||||||
ITEM "1|Imponibili"
|
|
||||||
ITEM "2|Non imponibili"
|
|
||||||
ITEM "3|Senza applicaz.imposta"
|
|
||||||
END
|
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 25 4
|
|
||||||
BEGIN
|
|
||||||
PROMPT 44 6 "@bIndicatori mod. 101/102"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN CHK_TABIVA_B0
|
BOOLEAN CHK_TABIVA_B0
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 7 "Clienti"
|
PROMPT 4 7 "Clienti"
|
||||||
FIELD B0
|
FIELD B0
|
||||||
HELP "Indicare se il codice deve comparire nel modello 101"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN FLD_TABIVA_B1
|
BOOLEAN FLD_TABIVA_B1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 8 "Fornitori"
|
PROMPT 4 8 "Fornitori"
|
||||||
FIELD B1
|
FIELD B1
|
||||||
HELP "Indicare se il codice deve comparire nel modello 102"
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 48 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 19 6 "@bAllegati Clienti/Fornitori"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST FLD_TABIVA_S7 1 43
|
||||||
|
BEGIN
|
||||||
|
PROMPT 20 7 ""
|
||||||
|
FIELD S7
|
||||||
|
ITEM " |Non in allegato"
|
||||||
|
ITEM "1|CL004001 - Imponibili"
|
||||||
|
ITEM "2|CL005001 - Non imponibili"
|
||||||
|
ITEM "3|CL006001 - Senza applicazione imposta"
|
||||||
|
ITEM "4|CL007001 - IVA non esposta in fattura"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST FLD_TABIVA_S8 1 43
|
||||||
|
BEGIN
|
||||||
|
PROMPT 20 8 ""
|
||||||
|
FIELD S8
|
||||||
|
ITEM " |Non in allegato"
|
||||||
|
ITEM "1|FR004001 - Imponibili"
|
||||||
|
ITEM "5|FR005001 - Imponibili+Imposta afferente"
|
||||||
|
ITEM "2|FR006001 - Non imponibili"
|
||||||
|
ITEM "3|FR007001 - Senza applicazione imposta"
|
||||||
|
ITEM "4|FR008001 - IVA non esposta in fattura"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING FLD_TABIVA_I3 3
|
STRING FLD_TABIVA_I3 3
|
||||||
|
@ -29,3 +29,4 @@
|
|||||||
#define AMMCE_MSG05 "MSG05"
|
#define AMMCE_MSG05 "MSG05"
|
||||||
#define AMMCE_MSGD05 "MSGD05"
|
#define AMMCE_MSGD05 "MSGD05"
|
||||||
#define AMMCE_MSG06 "MSG06"
|
#define AMMCE_MSG06 "MSG06"
|
||||||
|
#define AMMCE_FRINGEBEN "FRINGEBEN"
|
||||||
|
@ -326,7 +326,7 @@ int ce0100(int argc, char* argv[])
|
|||||||
if (argc > 2)
|
if (argc > 2)
|
||||||
{
|
{
|
||||||
TString name;
|
TString name;
|
||||||
name << TR("Tabella ") << argv[2];
|
name << TR("Tabella") << ' ' << argv[2];
|
||||||
TCEtables a;
|
TCEtables a;
|
||||||
a.run(argc, argv, name);
|
a.run(argc, argv, name);
|
||||||
}
|
}
|
||||||
|
137
ce/ce0500.cpp
137
ce/ce0500.cpp
@ -11,7 +11,6 @@
|
|||||||
#include "ce0500a.h"
|
#include "ce0500a.h"
|
||||||
#include "../cg/cglib01.h"
|
#include "../cg/cglib01.h"
|
||||||
|
|
||||||
|
|
||||||
#include "cespi.h"
|
#include "cespi.h"
|
||||||
#include "salce.h"
|
#include "salce.h"
|
||||||
#include "ammce.h"
|
#include "ammce.h"
|
||||||
@ -135,17 +134,18 @@ void TQuery_mask::on_user_search(TOperable_field& o)
|
|||||||
TString prompt = o.prompt();
|
TString prompt = o.prompt();
|
||||||
prompt << "@" << o.size(); //lunghezza del prompt del campo
|
prompt << "@" << o.size(); //lunghezza del prompt del campo
|
||||||
header.add(prompt);
|
header.add(prompt);
|
||||||
order.add(CESPI_IDCESPITE); header.add(TR("Cespite@10"));
|
order.add(CESPI_IDCESPITE); header.add(HR("Cespite@10"));
|
||||||
order.add(CESPI_DESC); header.add(FR("Descrizione cespite@50"));
|
order.add(CESPI_DESC); header.add(HR("Descrizione cespite@50"));
|
||||||
|
|
||||||
TRelation rel(LF_CESPI);
|
TRelation rel(LF_CESPI);
|
||||||
|
|
||||||
TSorted_cursor cur(&rel, order);
|
TSorted_cursor cur(&rel, order);
|
||||||
TCursor_sheet sht(&cur, order, TR("Cespiti"), header, 0, 1);
|
TToken_string siblings;
|
||||||
|
TBrowse_sheet sht(&cur, order, TR("Cespiti"), header, 0, (TEdit_field&)o, siblings);
|
||||||
if (sht.run() == K_ENTER)
|
if (sht.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
TToken_string& row = sht.row();
|
TToken_string& row = sht.row();
|
||||||
set(F_IDCESPITE, row.get(1), TRUE);
|
set(F_IDCESPITE, row.get(1), true);
|
||||||
stop_run(K_AUTO_ENTER);
|
stop_run(K_AUTO_ENTER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -155,27 +155,26 @@ void TQuery_mask::on_search_event(TOperable_field& o)
|
|||||||
TToken_string order, fields, header;
|
TToken_string order, fields, header;
|
||||||
if (o.dlg() >= F_SEARCH3)
|
if (o.dlg() >= F_SEARCH3)
|
||||||
{
|
{
|
||||||
order.add(CESPI_STABILIM); header.add(TR("Stabilimento"));
|
order.add(CESPI_STABILIM); header.add(HR("Stabilimento"));
|
||||||
order.add(CESPI_REPARTO); header.add(FR("Reparto@10"));
|
order.add(CESPI_REPARTO); header.add(HR("Reparto@10"));
|
||||||
}
|
}
|
||||||
if (o.dlg() >= F_SEARCH2)
|
if (o.dlg() >= F_SEARCH2)
|
||||||
{
|
{
|
||||||
order.add(CESPI_CODIMP); header.add(FR("Impianto@10"));
|
order.add(CESPI_CODIMP); header.add(HR("Impianto@10"));
|
||||||
order.add("CIM->S0"); header.add(FR("Descrizione impianto@40"));
|
order.add("CIM->S0"); header.add(HR("Descrizione impianto@40"));
|
||||||
}
|
}
|
||||||
if (o.dlg() >= F_SEARCH1)
|
if (o.dlg() >= F_SEARCH1)
|
||||||
{
|
{
|
||||||
order.add(CESPI_CODCAT); header.add(TR("Cat"));
|
order.add(CESPI_CODCAT); header.add(HR("Cat"));
|
||||||
order.add(CESPI_DTCOMP); header.add(FR("Data Acq.@10"));
|
order.add(CESPI_DTCOMP); header.add(HR("Data Acq.@10"));
|
||||||
}
|
}
|
||||||
|
|
||||||
order.add(CESPI_IDCESPITE); header.add(FR("Codice@10"));
|
order.add(CESPI_IDCESPITE); header.add(HR("Codice@10"));
|
||||||
|
|
||||||
fields = order;
|
fields = order;
|
||||||
fields.add(CESPI_DESC); header.add(FR("Descrizione cespite@50"));
|
fields.add(CESPI_DESC); header.add(HR("Descrizione cespite@50"));
|
||||||
|
|
||||||
TRelation rel(LF_CESPI);
|
TRelation rel(LF_CESPI);
|
||||||
|
|
||||||
rel.add("CIM","CODTAB==CODIMP");
|
rel.add("CIM","CODTAB==CODIMP");
|
||||||
|
|
||||||
TString filter;
|
TString filter;
|
||||||
@ -193,12 +192,13 @@ void TQuery_mask::on_search_event(TOperable_field& o)
|
|||||||
}
|
}
|
||||||
|
|
||||||
TSorted_cursor cur(&rel, order, filter);
|
TSorted_cursor cur(&rel, order, filter);
|
||||||
TCursor_sheet sht(&cur, fields, TR("Cespiti"), header, 0, 1);
|
TCursor_sheet sht(&cur, order, TR("Cespiti"), header, 0, 1);
|
||||||
|
|
||||||
if (sht.run() == K_ENTER)
|
if (sht.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
TToken_string& row = sht.row();
|
TToken_string& row = sht.row();
|
||||||
const int cod_pos = row.items()-2;
|
const int cod_pos = row.items()-2;
|
||||||
set(F_IDCESPITE, row.get(cod_pos), TRUE);
|
set(F_IDCESPITE, row.get(cod_pos), true);
|
||||||
stop_run(K_AUTO_ENTER);
|
stop_run(K_AUTO_ENTER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -334,7 +334,7 @@ bool TQuery_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TQuery_mask::on_firm_change()
|
void TQuery_mask::on_firm_change()
|
||||||
@ -408,7 +408,7 @@ TCurrency TEdit_mask::sum_fields(const short* f) const
|
|||||||
|
|
||||||
bool TEdit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
bool TEdit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
bool ok = TRUE;
|
bool ok = true;
|
||||||
switch (o.dlg())
|
switch (o.dlg())
|
||||||
{
|
{
|
||||||
case F_CATEGORIA:
|
case F_CATEGORIA:
|
||||||
@ -524,7 +524,7 @@ bool TEdit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
TCurrency plusr; get_currency(F_PLUSREIN, plusr);
|
TCurrency plusr; get_currency(F_PLUSREIN, plusr);
|
||||||
const TCurrency minim = costo - noamm;
|
const TCurrency minim = costo - noamm;
|
||||||
if (plusr > minim)
|
if (plusr > minim)
|
||||||
return error_box(FR("La plusvalenza reinvestita non puo' superare %s"), minim.string(TRUE));
|
return error_box(FR("La plusvalenza reinvestita non puo' superare %s"), minim.string(true));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case F_ELEMENTI:
|
case F_ELEMENTI:
|
||||||
@ -567,10 +567,18 @@ bool TEdit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
if (fon_amm > val_amm)
|
if (fon_amm > val_amm)
|
||||||
{
|
{
|
||||||
TString msg;
|
TString msg;
|
||||||
msg << TR("Il fondo ammortamento fiscale (") << fon_amm.string(TRUE) << ')';
|
msg << TR("Il fondo ammortamento fiscale (") << fon_amm.string(true) << ')';
|
||||||
msg << TR("non puo' superare il valore da ammortizzare (") << val_amm.string(TRUE) << ')';
|
msg << TR("non puo' superare il valore da ammortizzare (") << val_amm.string(true) << ')';
|
||||||
return error_box(msg);
|
return error_box(msg);
|
||||||
}
|
}
|
||||||
|
if (field(F_FRINGEBEN).active())
|
||||||
|
{
|
||||||
|
const short ff[] = { F_NORMALE, F_ACCELERATO, F_ANTICIPATO, 0};
|
||||||
|
const TCurrency fringe_amm = sum_fields(ff);
|
||||||
|
TCurrency fringe_ben; get_currency(F_FRINGEBEN, fringe_ben);
|
||||||
|
if (fringe_amm > fringe_ben)
|
||||||
|
return error_box(TR("Il fondo ammortamento fiscale non puo' superare il valore di fringe benefit"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case F_FPRIVATO:
|
case F_FPRIVATO:
|
||||||
@ -593,8 +601,8 @@ bool TEdit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
if (fon_amm > val_amm)
|
if (fon_amm > val_amm)
|
||||||
{
|
{
|
||||||
TString msg;
|
TString msg;
|
||||||
msg << TR("Il fondo ammortamento civilistico (") << fon_amm.string(TRUE) << ')';
|
msg << TR("Il fondo ammortamento civilistico (") << fon_amm.string(true) << ')';
|
||||||
msg << TR("non puo' superare il valore da ammortizzare (") << val_amm.string(TRUE) << ')';
|
msg << TR("non puo' superare il valore da ammortizzare (") << val_amm.string(true) << ')';
|
||||||
return error_box(msg);
|
return error_box(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -639,13 +647,13 @@ void TEdit_mask::protect_page(int page, TToken_string& enabling)
|
|||||||
bool TEdit_mask::test_ammissibilita_dati()
|
bool TEdit_mask::test_ammissibilita_dati()
|
||||||
{
|
{
|
||||||
const char* msg = insert_mode() ? TR("Inserimento") : TR("Modifica");
|
const char* msg = insert_mode() ? TR("Inserimento") : TR("Modifica");
|
||||||
xvtil_statbar_set(msg, TRUE);
|
xvtil_statbar_set(msg, true);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TEdit_mask::test_ammissibilita_saldi()
|
bool TEdit_mask::test_ammissibilita_saldi()
|
||||||
{
|
{
|
||||||
bool protez = FALSE;
|
bool protez = false;
|
||||||
const char* msg = "";
|
const char* msg = "";
|
||||||
switch (_staat)
|
switch (_staat)
|
||||||
{
|
{
|
||||||
@ -656,7 +664,7 @@ bool TEdit_mask::test_ammissibilita_saldi()
|
|||||||
const TDate dtacq(get(F_DTCOMP));
|
const TDate dtacq(get(F_DTCOMP));
|
||||||
const TDate dtfunz(get(F_DTFUNZ));
|
const TDate dtfunz(get(F_DTFUNZ));
|
||||||
if (!dtacq.ok() || !dtfunz.ok())
|
if (!dtacq.ok() || !dtfunz.ok())
|
||||||
protez = TRUE;
|
protez = true;
|
||||||
else
|
else
|
||||||
protez = dtacq >= iniz || dtfunz >= iniz;
|
protez = dtacq >= iniz || dtfunz >= iniz;
|
||||||
if (protez)
|
if (protez)
|
||||||
@ -664,7 +672,7 @@ bool TEdit_mask::test_ammissibilita_saldi()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
protez = TRUE;
|
protez = true;
|
||||||
msg = TR("Bollato stampato: non sono ammesse modifiche");
|
msg = TR("Bollato stampato: non sono ammesse modifiche");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -680,14 +688,14 @@ bool TEdit_mask::test_ammissibilita_saldi()
|
|||||||
beep(1);
|
beep(1);
|
||||||
else
|
else
|
||||||
msg = insert_mode() ? TR("Inserimento") : TR("Modifica");
|
msg = insert_mode() ? TR("Inserimento") : TR("Modifica");
|
||||||
xvtil_statbar_set(msg, TRUE);
|
xvtil_statbar_set(msg, true);
|
||||||
|
|
||||||
return protez;
|
return protez;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TEdit_mask::test_ammissibilita_fondi()
|
bool TEdit_mask::test_ammissibilita_fondi()
|
||||||
{
|
{
|
||||||
bool protez = FALSE;
|
bool protez = false;
|
||||||
const char* msg = "";
|
const char* msg = "";
|
||||||
switch (_staat)
|
switch (_staat)
|
||||||
{
|
{
|
||||||
@ -697,7 +705,7 @@ bool TEdit_mask::test_ammissibilita_fondi()
|
|||||||
const TDate dtacq(get(F_DTCOMP));
|
const TDate dtacq(get(F_DTCOMP));
|
||||||
const TDate dtfunz(get(F_DTFUNZ));
|
const TDate dtfunz(get(F_DTFUNZ));
|
||||||
if (!dtacq.ok() || !dtfunz.ok())
|
if (!dtacq.ok() || !dtfunz.ok())
|
||||||
protez = TRUE;
|
protez = true;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const TDate iniz(get(F_INIZIO_ES));
|
const TDate iniz(get(F_INIZIO_ES));
|
||||||
@ -708,10 +716,10 @@ bool TEdit_mask::test_ammissibilita_fondi()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
protez = TRUE;
|
protez = true;
|
||||||
msg = TR("Bollato stampato: non sono ammesse modifiche");
|
msg = TR("Bollato stampato: non sono ammesse modifiche");
|
||||||
break;
|
break;
|
||||||
default: protez = FALSE; break;
|
default: protez = false; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
TToken_string enabling;
|
TToken_string enabling;
|
||||||
@ -723,11 +731,11 @@ bool TEdit_mask::test_ammissibilita_fondi()
|
|||||||
{
|
{
|
||||||
const TDate dtfunz(get(F_DTFUNZ));
|
const TDate dtfunz(get(F_DTFUNZ));
|
||||||
const TDate iniz(get(F_INIZIO_ES));
|
const TDate iniz(get(F_INIZIO_ES));
|
||||||
bool prot9 = FALSE;
|
bool prot9 = false;
|
||||||
if (!dtfunz.ok() || dtfunz >= iniz)
|
if (!dtfunz.ok() || dtfunz >= iniz)
|
||||||
{
|
{
|
||||||
msg = TR("Cespite non ancora entrato in funzione a inizio esercizio");
|
msg = TR("Cespite non ancora entrato in funzione a inizio esercizio");
|
||||||
prot9 = TRUE;
|
prot9 = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -735,16 +743,24 @@ bool TEdit_mask::test_ammissibilita_fondi()
|
|||||||
if (cac.get_bool("B0"))
|
if (cac.get_bool("B0"))
|
||||||
{
|
{
|
||||||
msg = TR("Categoria non ammortizzabile");
|
msg = TR("Categoria non ammortizzabile");
|
||||||
prot9 = TRUE;
|
prot9 = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
enable(-9, !prot9);
|
enable(-9, !prot9);
|
||||||
|
//testa se e' un veicolo promiscuo in uso a dipendente
|
||||||
|
if (!prot9)
|
||||||
|
{
|
||||||
|
const bool veicolodipendente = get_bool(F_VEIDIP);
|
||||||
|
//navi,aerei,astronavi etc. non possono godere del fringe benefit
|
||||||
|
const int tipoveicolo = get_int(F_VEICOLO);
|
||||||
|
enable(F_FRINGEBEN, veicolodipendente && tipoveicolo > 1 && tipoveicolo < 5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (*msg)
|
if (*msg)
|
||||||
beep(1);
|
beep(1);
|
||||||
else
|
else
|
||||||
msg = insert_mode() ? TR("Inserimento") : TR("Modifica");
|
msg = insert_mode() ? TR("Inserimento") : TR("Modifica");
|
||||||
xvtil_statbar_set(msg, TRUE);
|
xvtil_statbar_set(msg, true);
|
||||||
|
|
||||||
return protez;
|
return protez;
|
||||||
}
|
}
|
||||||
@ -759,6 +775,7 @@ bool TEdit_mask::on_key(KEY k)
|
|||||||
case K_CTRL+K_F1: new_page = 1; break;
|
case K_CTRL+K_F1: new_page = 1; break;
|
||||||
case K_CTRL+K_F2: new_page = 2; break;
|
case K_CTRL+K_F2: new_page = 2; break;
|
||||||
case K_CTRL+K_F3: new_page = 3; break;
|
case K_CTRL+K_F3: new_page = 3; break;
|
||||||
|
case K_CTRL+K_F4: new_page = 4; break;
|
||||||
case K_PREV : new_page--; break;
|
case K_PREV : new_page--; break;
|
||||||
case K_NEXT : new_page++; break;
|
case K_NEXT : new_page++; break;
|
||||||
default: break;
|
default: break;
|
||||||
@ -767,9 +784,9 @@ bool TEdit_mask::on_key(KEY k)
|
|||||||
// If page will change ...
|
// If page will change ...
|
||||||
if (old_page != new_page) switch(new_page)
|
if (old_page != new_page) switch(new_page)
|
||||||
{
|
{
|
||||||
case 1: test_ammissibilita_dati(); break;
|
case 1: test_ammissibilita_dati(); break;
|
||||||
case 2: test_ammissibilita_saldi(); break;
|
case 3: test_ammissibilita_saldi(); break;
|
||||||
case 3: test_ammissibilita_fondi(); break;
|
case 4: test_ammissibilita_fondi(); break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -819,7 +836,7 @@ protected:
|
|||||||
|
|
||||||
bool TAnacespi::changing_mask(int)
|
bool TAnacespi::changing_mask(int)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TMask* TAnacespi::get_mask(int mode)
|
TMask* TAnacespi::get_mask(int mode)
|
||||||
@ -934,42 +951,35 @@ void TAnacespi::init_modify_mode(TMask& m)
|
|||||||
if (dtacq < iniz)
|
if (dtacq < iniz)
|
||||||
{
|
{
|
||||||
if (!dtfunz.ok() || dtfunz >= iniz)
|
if (!dtfunz.ok() || dtfunz >= iniz)
|
||||||
{
|
|
||||||
enabling.add(F_DTFUNZ);
|
enabling.add(F_DTFUNZ);
|
||||||
enabling.add(F_USOPROM);
|
|
||||||
enabling.add(F_VEIDIP);
|
if (_emask->tipo_cespite() == tc_materiale)
|
||||||
enabling.add(F_VEICOLO);
|
|
||||||
if (_emask->tipo_cespite() == tc_materiale)
|
|
||||||
enabling.add(F_SPEMAN);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
enabling.add(F_USOPROM);
|
enabling.add(F_USOPROM);
|
||||||
enabling.add(F_VEIDIP);
|
enabling.add(F_VEIDIP);
|
||||||
enabling.add(F_VEICOLO);
|
enabling.add(F_VEICOLO);
|
||||||
if (_emask->tipo_cespite() == tc_materiale)
|
enabling.add(F_SPEMAN);
|
||||||
enabling.add(F_SPEMAN);
|
enabling.add(F_FABBR06);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (!dtfunz.ok() || dtfunz >= iniz)
|
if (!dtfunz.ok() || dtfunz >= iniz)
|
||||||
{
|
|
||||||
enabling.add(F_DTFUNZ);
|
enabling.add(F_DTFUNZ);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
_emask->protect_page(1, enabling);
|
_emask->protect_page(1, enabling);
|
||||||
|
|
||||||
enabling.cut(0);
|
|
||||||
if (staat == 2 || staat == 3)
|
if (staat == 2 || staat == 3)
|
||||||
|
{
|
||||||
|
enabling.cut(0);
|
||||||
_emask->protect_page(2, enabling);
|
_emask->protect_page(2, enabling);
|
||||||
|
}
|
||||||
|
|
||||||
if (!m.field(F_DTALIEN).empty())
|
if (!m.field(F_DTALIEN).empty())
|
||||||
xvtil_statbar_set(TR("Cespite alienato: non è possibile apportare modifiche"), TRUE);
|
xvtil_statbar_set(TR("Cespite alienato: non è possibile apportare modifiche"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* TAnacespi::get_next_key()
|
const char* TAnacespi::get_next_key()
|
||||||
@ -983,8 +993,7 @@ const char* TAnacespi::get_next_key()
|
|||||||
|
|
||||||
int TAnacespi::read(TMask& m)
|
int TAnacespi::read(TMask& m)
|
||||||
{
|
{
|
||||||
int err = TRelation_application::read(m);
|
return TRelation_application::read(m);
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int TAnacespi::write(const TMask& m)
|
int TAnacespi::write(const TMask& m)
|
||||||
@ -1045,7 +1054,7 @@ bool TAnacespi::kill_cespite(const TString& idcespite, int lfile, int key)
|
|||||||
{
|
{
|
||||||
TRelation rel(lfile);
|
TRelation rel(lfile);
|
||||||
TRectype& filter = rel.curr();
|
TRectype& filter = rel.curr();
|
||||||
filter.put("IDCESPITE", idcespite);
|
filter.put(CESPI_IDCESPITE, idcespite);
|
||||||
TCursor cur(&rel, "", key, &filter, &filter);
|
TCursor cur(&rel, "", key, &filter, &filter);
|
||||||
const TRecnotype items = cur.items();
|
const TRecnotype items = cur.items();
|
||||||
if (items > 0)
|
if (items > 0)
|
||||||
@ -1059,13 +1068,13 @@ bool TAnacespi::kill_cespite(const TString& idcespite, int lfile, int key)
|
|||||||
return error_box(FR("Errore %d di cancellazione sul file %d"), err, lfile);
|
return error_box(FR("Errore %d di cancellazione sul file %d"), err, lfile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TAnacespi::remove()
|
bool TAnacespi::remove()
|
||||||
{
|
{
|
||||||
const int staat = _qmask->stato_attivita();
|
const int staat = _qmask->stato_attivita();
|
||||||
bool yes = FALSE;
|
bool yes = false;
|
||||||
if (staat == 3)
|
if (staat == 3)
|
||||||
yes = yesno_box(TR("ATTENZIONE: il cespite è già stato stampato su bollato.\n"
|
yes = yesno_box(TR("ATTENZIONE: il cespite è già stato stampato su bollato.\n"
|
||||||
"Si desidera confermare l'elimininazione?"));
|
"Si desidera confermare l'elimininazione?"));
|
||||||
@ -1082,9 +1091,9 @@ bool TAnacespi::remove()
|
|||||||
kill_cespite(idcespite, LF_MOVAM) && kill_cespite(idcespite, LF_AMMMV) &&
|
kill_cespite(idcespite, LF_MOVAM) && kill_cespite(idcespite, LF_AMMMV) &&
|
||||||
kill_cespite(idcespite, LF_AMMCE))
|
kill_cespite(idcespite, LF_AMMCE))
|
||||||
{
|
{
|
||||||
rel->write_enable(0, FALSE); // Disabilito la cancellazione dei saldi (gia' cancellati prima)
|
rel->write_enable(0, false); // Disabilito la cancellazione dei saldi (gia' cancellati prima)
|
||||||
yes = TRelation_application::remove();
|
yes = TRelation_application::remove();
|
||||||
rel->write_enable(0, TRUE);
|
rel->write_enable(0, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return yes;
|
return yes;
|
||||||
@ -1098,7 +1107,7 @@ bool TAnacespi::user_create()
|
|||||||
|
|
||||||
_qmask = new TQuery_mask;
|
_qmask = new TQuery_mask;
|
||||||
_emask = new TEdit_mask;
|
_emask = new TEdit_mask;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TAnacespi::user_destroy()
|
bool TAnacespi::user_destroy()
|
||||||
@ -1106,7 +1115,7 @@ bool TAnacespi::user_destroy()
|
|||||||
delete _cespiti;
|
delete _cespiti;
|
||||||
delete _emask;
|
delete _emask;
|
||||||
delete _qmask;
|
delete _qmask;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ce0500(int argc, char* argv[])
|
int ce0500(int argc, char* argv[])
|
||||||
|
23
ce/ce0500a.h
23
ce/ce0500a.h
@ -30,12 +30,12 @@
|
|||||||
#define F_VEIDIP 138
|
#define F_VEIDIP 138
|
||||||
#define F_LEASING 139
|
#define F_LEASING 139
|
||||||
#define F_USATO 140
|
#define F_USATO 140
|
||||||
|
#define F_FABBR06 141
|
||||||
|
|
||||||
#define F_SPEMAN 150
|
#define F_SPEMAN 150
|
||||||
#define F_VEICOLO 151
|
#define F_VEICOLO 151
|
||||||
#define F_DESC_VEICOLO 152
|
#define F_DESC_VEICOLO 152
|
||||||
#define F_USOPROM 153
|
#define F_USOPROM 153
|
||||||
#define F_DESC_USOPROM 154
|
|
||||||
#define F_ANNIRIC 155
|
#define F_ANNIRIC 155
|
||||||
|
|
||||||
#define F_USER 160
|
#define F_USER 160
|
||||||
@ -43,15 +43,17 @@
|
|||||||
#define F_ELEMENTI 202
|
#define F_ELEMENTI 202
|
||||||
#define F_COSTO 203
|
#define F_COSTO 203
|
||||||
#define F_VNONAMM 204
|
#define F_VNONAMM 204
|
||||||
#define F_PLUSREIN 205
|
#define F_VNONAMM06 205
|
||||||
#define F_RIV75 206
|
#define F_VNONAMMC 206
|
||||||
#define F_RIV83 207
|
#define F_PLUSREIN 207
|
||||||
#define F_RIV90 208
|
#define F_RIV75 208
|
||||||
#define F_ANNI_90 209
|
#define F_RIV83 209
|
||||||
#define F_RIV91 210
|
#define F_RIV90 210
|
||||||
#define F_ANNI_91 211
|
#define F_ANNI_90 211
|
||||||
#define F_RIVGF 212
|
#define F_RIV91 212
|
||||||
#define F_RIVGC 213
|
#define F_ANNI_91 213
|
||||||
|
#define F_RIVGF 214
|
||||||
|
#define F_RIVGC 215
|
||||||
|
|
||||||
#define F_NORMALE 252
|
#define F_NORMALE 252
|
||||||
#define F_ACCELERATO 253
|
#define F_ACCELERATO 253
|
||||||
@ -61,6 +63,7 @@
|
|||||||
#define F_QPERSEPRIV 257
|
#define F_QPERSEPRIV 257
|
||||||
#define F_VSPMANU 258
|
#define F_VSPMANU 258
|
||||||
#define F_ANNIAMM 259
|
#define F_ANNIAMM 259
|
||||||
|
#define F_FRINGEBEN 260
|
||||||
|
|
||||||
#define F_NORMALE2 302
|
#define F_NORMALE2 302
|
||||||
#define F_ACCELERATO2 303
|
#define F_ACCELERATO2 303
|
||||||
|
100
ce/ce0500b.uml
100
ce/ce0500b.uml
@ -244,6 +244,16 @@ BEGIN
|
|||||||
FIELD USATO
|
FIELD USATO
|
||||||
END
|
END
|
||||||
|
|
||||||
|
LIST F_FABBR06 13
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 16 "Fabbricato strumentale art.43 "
|
||||||
|
ITEM "0|" MESSAGE CLEAR,F_VNONAMM06|CLEAR,F_VNONAMMC
|
||||||
|
ITEM "1|Industriale" MESSAGE ENABLE,F_VNONAMM06|ENABLE,F_VNONAMMC
|
||||||
|
ITEM "2|Altro" MESSAGE ENABLE,F_VNONAMM06|ENABLE,F_VNONAMMC
|
||||||
|
FIELD FABBR06
|
||||||
|
FLAGS "G"
|
||||||
|
END
|
||||||
|
|
||||||
LIST F_SPEMAN 1 24
|
LIST F_SPEMAN 1 24
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 17 "Gestione spese manutenzione "
|
PROMPT 1 17 "Gestione spese manutenzione "
|
||||||
@ -275,25 +285,15 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_USOPROM 1
|
LIST F_USOPROM 1 57
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 19 "Uso promiscuo "
|
PROMPT 1 19 "Uso promiscuo "
|
||||||
SHEET "Tipo@4R|Descrizione@60"
|
|
||||||
INPUT F_USOPROM
|
|
||||||
ITEM "1|Deducibilità 100% - Esclusivamente strumentale"
|
ITEM "1|Deducibilità 100% - Esclusivamente strumentale"
|
||||||
ITEM "2|Deducibilità 50% - Uso promiscuo"
|
ITEM "2|Deducibilità 50% - Uso promiscuo"
|
||||||
ITEM "3|Deducibilità 80% - Uso promiscuo agenti/rappresentanti"
|
ITEM "3|Deducibilità 80% - Uso promiscuo agenti/rappresentanti"
|
||||||
OUTPUT F_USOPROM
|
|
||||||
OUTPUT F_DESC_USOPROM
|
|
||||||
FIELD USOPROM
|
FIELD USOPROM
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESC_USOPROM 80 54
|
|
||||||
BEGIN
|
|
||||||
PROMPT 22 19 ""
|
|
||||||
FLAGS "D"
|
|
||||||
END
|
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Personalizzazioni" -1 -1 78 18
|
PAGE "Personalizzazioni" -1 -1 78 18
|
||||||
@ -374,46 +374,76 @@ END
|
|||||||
|
|
||||||
CURRENCY F_COSTO 15
|
CURRENCY F_COSTO 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "Costo storico "
|
PROMPT 47 6 "Costo storico "
|
||||||
FIELD LF_SALCE->CSTO
|
FIELD LF_SALCE->CSTO
|
||||||
END
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 7 "@bValore non ammortizzabile"
|
||||||
|
END
|
||||||
|
|
||||||
CURRENCY F_VNONAMM 15
|
CURRENCY F_VNONAMM 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 8 "Valore non ammortizzabile "
|
PROMPT 1 8 "Fiscale "
|
||||||
FIELD LF_SALCE->VNONAMM
|
FIELD LF_SALCE->VNONAMM
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_PLUSREIN 15
|
CURRENCY F_VNONAMMC 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 9 "Plusvalenza reinvestita "
|
PROMPT 49 8 "Civilistico "
|
||||||
FIELD LF_SALCE->PLUSREIN
|
FIELD LF_SALCE->VNONAMMC
|
||||||
|
END
|
||||||
|
|
||||||
|
CURRENCY F_VNONAMM06 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 9 "Da scorporo terreno secondo articolo 36 D.L. 223/06 "
|
||||||
|
FIELD LF_SALCE->VNONAMM06
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 11 "@bRivalutazione"
|
||||||
|
END
|
||||||
|
|
||||||
|
CURRENCY F_RIVGF 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 12 "Generica fiscale "
|
||||||
|
FIELD LF_SALCE->RIVGF
|
||||||
|
GROUP 8
|
||||||
|
END
|
||||||
|
|
||||||
|
CURRENCY F_RIVGC 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 12 "Generica civilistica "
|
||||||
|
FIELD LF_SALCE->RIVGC
|
||||||
|
GROUP 8
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_RIV75 15
|
CURRENCY F_RIV75 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 "Rivalutazione L. 576/75 "
|
PROMPT 1 13 "Legge 576/75 "
|
||||||
FIELD LF_SALCE->RIV75
|
FIELD LF_SALCE->RIV75
|
||||||
GROUP 8
|
GROUP 8
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_RIV83 15
|
CURRENCY F_RIV83 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 11 "Rivalutazione L. 72/83 "
|
PROMPT 40 13 "Legge 72/83 "
|
||||||
FIELD LF_SALCE->RIV83
|
FIELD LF_SALCE->RIV83
|
||||||
GROUP 8
|
GROUP 8
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_RIV90 15
|
CURRENCY F_RIV90 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 12 "Rivalutazione L. 408/90 "
|
PROMPT 1 14 "L.408/90 "
|
||||||
FIELD LF_SALCE->RIV90
|
FIELD LF_SALCE->RIV90
|
||||||
GROUP 8
|
GROUP 8
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ANNI_90 2
|
NUMBER F_ANNI_90 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 13 "Anni post rivalutazione L. 408/90 "
|
PROMPT 40 14 "Anni post rivalutazione L. 408/90 "
|
||||||
FLAGS "DU"
|
FLAGS "DU"
|
||||||
FIELD LF_SALCE->ANNIPOST90
|
FIELD LF_SALCE->ANNIPOST90
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
@ -423,14 +453,14 @@ END
|
|||||||
|
|
||||||
CURRENCY F_RIV91 15
|
CURRENCY F_RIV91 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 14 "Rivalutazione L. 413/91 "
|
PROMPT 1 15 "L.413/91 "
|
||||||
FIELD LF_SALCE->RIV91
|
FIELD LF_SALCE->RIV91
|
||||||
GROUP 8
|
GROUP 8
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ANNI_91 2
|
NUMBER F_ANNI_91 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 15 "Anni post rivalutazione L. 413/91 "
|
PROMPT 40 15 "Anni post rivalutazione L. 413/91 "
|
||||||
FLAGS "DU"
|
FLAGS "DU"
|
||||||
FIELD LF_SALCE->ANNIPOST91
|
FIELD LF_SALCE->ANNIPOST91
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
@ -438,18 +468,10 @@ BEGIN
|
|||||||
GROUP 8
|
GROUP 8
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_RIVGF 15
|
CURRENCY F_PLUSREIN 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 16 "Rivalutazione generica fiscale "
|
PROMPT 1 17 "Plusvalenza reinvestita "
|
||||||
FIELD LF_SALCE->RIVGF
|
FIELD LF_SALCE->PLUSREIN
|
||||||
GROUP 8
|
|
||||||
END
|
|
||||||
|
|
||||||
CURRENCY F_RIVGC 15
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 17 "Rivalutazione generica civilistica "
|
|
||||||
FIELD LF_SALCE->RIVGC
|
|
||||||
GROUP 8
|
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_VSPMANU 15
|
CURRENCY F_VSPMANU 15
|
||||||
@ -587,6 +609,18 @@ BEGIN
|
|||||||
GROUP 9
|
GROUP 9
|
||||||
END
|
END
|
||||||
|
|
||||||
|
CURRENCY F_FRINGEBEN 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 14 "Fringe benefit "
|
||||||
|
FIELD LF_AMMCE->FRINGEBEN
|
||||||
|
GROUP 9
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
//quelli che seguono hidati sono i campi chiave del record di ammce che non si devono vedere
|
||||||
|
//a video ma che ci devono essere per avere una riscrittura completa del record in caso di
|
||||||
|
//registrazione (altrimenti nascono antipatici record con chiave incopleta!)
|
||||||
|
|
||||||
LIST DLG_NULL 1 1
|
LIST DLG_NULL 1 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 41 6 ""
|
PROMPT 41 6 ""
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
#include <isam.h>
|
|
||||||
#include <mask.h>
|
|
||||||
#include <prefix.h>
|
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
#include <sheet.h>
|
#include <sheet.h>
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <relapp.h>
|
#include <relapp.h>
|
||||||
#include <sheet.h>
|
#include <sheet.h>
|
||||||
#include <utility.h>
|
|
||||||
|
|
||||||
#include "ce1.h"
|
#include "ce1.h"
|
||||||
#include "ce2101.h"
|
#include "ce2101.h"
|
||||||
@ -302,7 +301,15 @@ bool TForce_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
{
|
{
|
||||||
real sumf = get_real(F_AMMNOR_F)+get_real(F_AMMACC_F)+get_real(F_AMMANT_F)+get_real(F_QUOTE_PERSE)+get_real(F_PRIVATO)+get_real(F_QUOTE_PRIV);
|
real sumf = get_real(F_AMMNOR_F)+get_real(F_AMMACC_F)+get_real(F_AMMANT_F)+get_real(F_QUOTE_PERSE)+get_real(F_PRIVATO)+get_real(F_QUOTE_PRIV);
|
||||||
if (sumf > _residuof_ini)
|
if (sumf > _residuof_ini)
|
||||||
return error_box(TR("Attenzione: l'ammortamento richiesto supera il residuo fiscale del cespite"));
|
return error_box(TR("Attenzione: l'ammortamento richiesto supera il residuo fiscale del cespite"));
|
||||||
|
|
||||||
|
if (e == fe_close && field(F_FRINGEBEN).shown())
|
||||||
|
{
|
||||||
|
const real fringe_amm = get_real(F_AMMNOR_F)+get_real(F_AMMACC_F)+get_real(F_AMMANT_F);
|
||||||
|
const real fringe_ben = get_real(F_FRINGEBEN);
|
||||||
|
if (fringe_amm > fringe_ben)
|
||||||
|
return error_box(TR("Il fondo ammortamento fiscale non puo' superare il valore di fringe benefit"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case F_AMMNOR_C: // controlla che residuoc sia < della somma dei campi quota civilistici
|
case F_AMMNOR_C: // controlla che residuoc sia < della somma dei campi quota civilistici
|
||||||
@ -417,9 +424,10 @@ void TForza_amm_cespi::init_modify_mode(TMask& m)
|
|||||||
m.enable(F_FORZATURA_Q_C, accendiforzatura);
|
m.enable(F_FORZATURA_Q_C, accendiforzatura);
|
||||||
m.enable(F_FORZATURA_P_C, accendiforzatura);
|
m.enable(F_FORZATURA_P_C, accendiforzatura);
|
||||||
|
|
||||||
|
const TCespite ces(m.get(F_IDCESPITE));
|
||||||
|
|
||||||
if (accendiforzatura) //se lo stato attivitá lascia liberi di forzare, controlla se il tipocespite fa altrettanto...
|
if (accendiforzatura) //se lo stato attivitá lascia liberi di forzare, controlla se il tipocespite fa altrettanto...
|
||||||
{
|
{
|
||||||
TCespite ces(m.get(F_IDCESPITE));
|
|
||||||
const TRectype& cac = ces.categoria();
|
const TRectype& cac = ces.categoria();
|
||||||
switch (ces.tipo())
|
switch (ces.tipo())
|
||||||
{
|
{
|
||||||
@ -454,6 +462,11 @@ void TForza_amm_cespi::init_modify_mode(TMask& m)
|
|||||||
m.set(F_RIS_AMMNOR_C, m.get_real(F_AMMNOR_C));
|
m.set(F_RIS_AMMNOR_C, m.get_real(F_AMMNOR_C));
|
||||||
m.set(F_RIS_AMMACC_C, m.get_real(F_AMMACC_C));
|
m.set(F_RIS_AMMACC_C, m.get_real(F_AMMACC_C));
|
||||||
m.set(F_RIS_AMMANT_C, m.get_real(F_AMMANT_C));
|
m.set(F_RIS_AMMANT_C, m.get_real(F_AMMANT_C));
|
||||||
|
|
||||||
|
if (ces.get_bool(CESPI_VEIDIP) && ces.get_int(CESPI_FLGTPVEI) > 1 && ces.get_int(CESPI_FLGTPVEI) < 5)
|
||||||
|
m.show(F_FRINGEBEN);
|
||||||
|
else
|
||||||
|
m.hide(F_FRINGEBEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
// funzione per il ricalcolo degli ammortamenti dopo la forzatura
|
// funzione per il ricalcolo degli ammortamenti dopo la forzatura
|
||||||
|
@ -46,7 +46,8 @@
|
|||||||
#define F_RIS_AMMACC_C 149
|
#define F_RIS_AMMACC_C 149
|
||||||
#define F_RIS_AMMANT_C 150
|
#define F_RIS_AMMANT_C 150
|
||||||
#define F_RIS_QUOTE_PERSE 151
|
#define F_RIS_QUOTE_PERSE 151
|
||||||
#define F_RIS_PRIVATO 152
|
#define F_RIS_PRIVATO 152
|
||||||
#define F_RIS_QUOTE_PRIV 153
|
#define F_RIS_QUOTE_PRIV 153
|
||||||
#define F_RESIDUO_F 154
|
#define F_RESIDUO_F 154
|
||||||
#define F_RESIDUO_C 155
|
#define F_RESIDUO_C 155
|
||||||
|
#define F_FRINGEBEN 156
|
||||||
|
@ -311,6 +311,14 @@ BEGIN
|
|||||||
GROUP 3
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
|
CURRENCY F_FRINGEBEN 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 21 "Fringe benefit "
|
||||||
|
FIELD FRINGEBEN
|
||||||
|
FLAGS "D"
|
||||||
|
GROUP 1
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER F_P_AMMNOR_F 6 2
|
NUMBER F_P_AMMNOR_F 6 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 35 15 ""
|
PROMPT 35 15 ""
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
#include <defmask.h>
|
#include <defmask.h>
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <relapp.h>
|
#include <relapp.h>
|
||||||
#include <sheet.h>
|
|
||||||
#include <utility.h>
|
|
||||||
|
|
||||||
#include "ce1.h"
|
#include "ce1.h"
|
||||||
#include "ce2101.h"
|
#include "ce2101.h"
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <relapp.h>
|
#include <relapp.h>
|
||||||
#include <sheet.h>
|
#include <sheet.h>
|
||||||
#include <utility.h>
|
|
||||||
|
|
||||||
#include "ce1.h"
|
#include "ce1.h"
|
||||||
#include "ce2101.h"
|
#include "ce2101.h"
|
||||||
@ -421,6 +420,8 @@ bool TSelam_mmask::on_field_event(TOperable_field& o, TField_event e, long jolly
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -764,7 +765,13 @@ void TSelect_ammoces::init_mask(TMask& m)
|
|||||||
m.set(F_AMMFISC_ACC_CT, catdi.get(CATDI_PFACC));
|
m.set(F_AMMFISC_ACC_CT, catdi.get(CATDI_PFACC));
|
||||||
m.set(F_AMMCIV_ACC_CT, catdi.get(CATDI_PCACC));
|
m.set(F_AMMCIV_ACC_CT, catdi.get(CATDI_PCACC));
|
||||||
m.set(F_AMMRIT_CT, catdi.get(CATDI_AMMRIT));
|
m.set(F_AMMRIT_CT, catdi.get(CATDI_AMMRIT));
|
||||||
m.set(F_AMM100_CT, catdi.get(CATDI_CSCEN));
|
m.set(F_AMM100_CT, catdi.get(CATDI_CSCEN));
|
||||||
|
|
||||||
|
if (ces.get_bool(CESPI_VEIDIP) && ces.get_int(CESPI_FLGTPVEI) > 1 && ces.get_int(CESPI_FLGTPVEI) < 5)
|
||||||
|
m.show(F_FRINGEBEN);
|
||||||
|
else
|
||||||
|
m.hide(F_FRINGEBEN);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
} //chiude lo switch
|
} //chiude lo switch
|
||||||
|
|
||||||
|
@ -54,6 +54,9 @@
|
|||||||
#define F_AMM100_CE 249
|
#define F_AMM100_CE 249
|
||||||
#define F_AMM1002_CE 250
|
#define F_AMM1002_CE 250
|
||||||
#define F_AMM1003_CE 251
|
#define F_AMM1003_CE 251
|
||||||
|
#define F_FRINGEBEN 252
|
||||||
|
#define F_FRINGEBEN2 253
|
||||||
|
#define F_FRINGEBEN3 254
|
||||||
|
|
||||||
#define F_ALIQMAX 301
|
#define F_ALIQMAX 301
|
||||||
#define F_AMMFISC_CT 302
|
#define F_AMMFISC_CT 302
|
||||||
|
@ -153,7 +153,7 @@ END
|
|||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 56 7 " Normale Anticipato"
|
PROMPT 56 7 "Normale Anticipato"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
@ -223,7 +223,7 @@ END
|
|||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 40 11 " Normale Accelerato Anticipato"
|
PROMPT 40 11 "Normale Accelerato Anticipato"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
@ -292,7 +292,7 @@ END
|
|||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 40 17 " Normale Accelerato Anticipato"
|
PROMPT 40 17 "Normale Accelerato Anticipato"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
@ -379,7 +379,6 @@ BEGIN
|
|||||||
PROMPT 111 20 ""
|
PROMPT 111 20 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
FIELD 69@->AMMRIT
|
FIELD 69@->AMMRIT
|
||||||
GROUP 1
|
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_AMMRIT_CE3
|
BOOLEAN F_AMMRIT_CE3
|
||||||
@ -387,9 +386,32 @@ BEGIN
|
|||||||
PROMPT 113 20 ""
|
PROMPT 113 20 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
FIELD 77@->AMMRIT
|
FIELD 77@->AMMRIT
|
||||||
|
END
|
||||||
|
|
||||||
|
CURRENCY F_FRINGEBEN 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 35 20 "Fringe benefit veicoli "
|
||||||
|
FIELD FRINGEBEN
|
||||||
|
FLAGS "G"
|
||||||
|
MESSAGE FALSE COPY,F_FRINGEBEN2|COPY,F_FRINGEBEN3
|
||||||
|
MESSAGE TRUE COPY,,F_FRINGEBEN2|COPY,F_FRINGEBEN3
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
|
CURRENCY F_FRINGEBEN2 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 115 20 ""
|
||||||
|
FIELD 69@->FRINGEBEN
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
CURRENCY F_FRINGEBEN3 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 117 20 ""
|
||||||
|
FIELD 77@->FRINGEBEN
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
BOOLEAN F_AMM100_CE
|
BOOLEAN F_AMM100_CE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 21 "Amm.to al 100% per beni di valore unitario inferiore a 516.46 Euro"
|
PROMPT 1 21 "Amm.to al 100% per beni di valore unitario inferiore a 516.46 Euro"
|
||||||
|
106
ce/ce1500.cpp
106
ce/ce1500.cpp
@ -335,12 +335,14 @@ private:
|
|||||||
void set_fondi_inputability();
|
void set_fondi_inputability();
|
||||||
|
|
||||||
real calc_riv(const TRectype& salpro, int tipo) const;
|
real calc_riv(const TRectype& salpro, int tipo) const;
|
||||||
|
real calc_vnonamm(const TRectype& salpro, int tipo) const;
|
||||||
bool calc_amm(int tipo);
|
bool calc_amm(int tipo);
|
||||||
void calc_plus_minus(int tipo, real& plus, real& minus) const;
|
void calc_plus_minus(int tipo, real& plus, real& minus) const;
|
||||||
|
|
||||||
bool cespite_nuovo() const;
|
bool cespite_nuovo() const;
|
||||||
TCurrency sum_fields(const short* f) const;
|
TCurrency sum_fields(const short* f) const;
|
||||||
void super_polish();
|
void super_polish();
|
||||||
|
void enable_fabbricato();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
@ -385,6 +387,26 @@ void TMov_emask::super_polish()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//metodo per accendere/spegnere campi relativi ai fabbricati scorporabili
|
||||||
|
void TMov_emask::enable_fabbricato()
|
||||||
|
{
|
||||||
|
const TDate dtmov = get(F_DTMOV);
|
||||||
|
const TTipoFabbricato tipo_fabbr = _cespite.fabbricato();
|
||||||
|
if (tipo_fabbr != tf_nessuno && dtmov >= TDate(4,7,2006) && field(F_VNONAMM).active())
|
||||||
|
{
|
||||||
|
enable(-13);
|
||||||
|
set(F_FABBR06, tipo_fabbr);
|
||||||
|
set(F_DATASCORP06, dtmov);
|
||||||
|
if (mode() == MODE_INS)
|
||||||
|
set(F_PERCALC06, tipo_fabbr == tf_industriale ? 30 : 20);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reset(-13);
|
||||||
|
disable(-13);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TMov_emask::set_inputability(short id, char flag)
|
void TMov_emask::set_inputability(short id, char flag)
|
||||||
{
|
{
|
||||||
TMask_field& f = field(id);
|
TMask_field& f = field(id);
|
||||||
@ -456,7 +478,10 @@ bool TMov_emask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
set_inputability(F_IMPVEN, _s5[2]);
|
set_inputability(F_IMPVEN, _s5[2]);
|
||||||
set_inputability(F_ELEMENTI, _s5[3]);
|
set_inputability(F_ELEMENTI, _s5[3]);
|
||||||
set_inputability(F_COSTO, _s5[4]);
|
set_inputability(F_COSTO, _s5[4]);
|
||||||
|
|
||||||
set_inputability(F_VNONAMM, _s5[5]);
|
set_inputability(F_VNONAMM, _s5[5]);
|
||||||
|
set_inputability(F_VNONAMMC, _s5[5]);
|
||||||
|
|
||||||
set_inputability(F_PLUSREIN, _s5[6]);
|
set_inputability(F_PLUSREIN, _s5[6]);
|
||||||
set_inputability(riv_ids, _s5[7]);
|
set_inputability(riv_ids, _s5[7]);
|
||||||
set_inputability(F_RIVGF, _s5[8]);
|
set_inputability(F_RIVGF, _s5[8]);
|
||||||
@ -468,6 +493,11 @@ bool TMov_emask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
case '-': disable(F_SEGNO); set(F_SEGNO, "-"); break;
|
case '-': disable(F_SEGNO); set(F_SEGNO, "-"); break;
|
||||||
default : enable(F_SEGNO); break;
|
default : enable(F_SEGNO); break;
|
||||||
}
|
}
|
||||||
|
//solo se e' in modifica abilita il test sul fabbricato;se fosse in fe_init non potrebbe conoscere in..
|
||||||
|
//..questo momento l'idcespite e quindi non potrebbe riconoscerlo come fabbricato anche se lo fosse e..
|
||||||
|
//..resetterebbe i campi della pagina fabbricato!
|
||||||
|
if (e == fe_modify)
|
||||||
|
enable_fabbricato();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case F_IDRET:
|
case F_IDRET:
|
||||||
@ -493,13 +523,13 @@ bool TMov_emask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
const TString& id = o.get();
|
const TString& id = o.get();
|
||||||
if (_cespite.get(CESPI_IDCESPITE) != id)
|
if (_cespite.get(CESPI_IDCESPITE) != id)
|
||||||
_cespite.read(id);
|
_cespite.read(id);
|
||||||
enable_page(3, id.not_empty());
|
enable_page(4, id.not_empty());
|
||||||
if (id.not_empty())
|
if (id.not_empty())
|
||||||
{
|
{
|
||||||
const TRectype& cat = _cespite.categoria();
|
const TRectype& cat = _cespite.categoria();
|
||||||
set(F_CATEGORIA, _cespite.get(CESPI_CODCAT), true);
|
set(F_CATEGORIA, _cespite.get(CESPI_CODCAT), true);
|
||||||
set(F_DESC_CAT, cat.get("S0"), true);
|
set(F_DESC_CAT, cat.get("S0"), true);
|
||||||
if (o.enabled())
|
if (e != fe_init && o.enabled())
|
||||||
{
|
{
|
||||||
const TRectype& tpmov = cache().get("%TMC", get(F_CODMOV));
|
const TRectype& tpmov = cache().get("%TMC", get(F_CODMOV));
|
||||||
|
|
||||||
@ -519,7 +549,9 @@ bool TMov_emask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
//gestione fabbricati scorporabili da d.l. 223/06
|
||||||
|
enable_fabbricato();
|
||||||
|
} //if(id.not_empty...
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
reset(F_CATEGORIA);
|
reset(F_CATEGORIA);
|
||||||
@ -557,13 +589,15 @@ bool TMov_emask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
ini.set("DataMovimento", "");
|
ini.set("DataMovimento", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const TDate dtmov(o.get());
|
||||||
const TDate dtret(get(F_DTMOV_RET));
|
const TDate dtret(get(F_DTMOV_RET));
|
||||||
if (dtret.ok())
|
if (dtret.ok() && dtmov < dtret)
|
||||||
{
|
return error_box(TR("La data del movimento di rettifica deve seguire la data del movimento rettificato"));
|
||||||
const TDate dtmov(o.get());
|
|
||||||
if (dtmov < dtret)
|
//gestione campi per fabbricati scorporati
|
||||||
return error_box(TR("La data del movimento di rettifica deve seguire la data del movimento rettificato"));
|
if (e == fe_modify)
|
||||||
}
|
enable_fabbricato();
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case F_TPDOC:
|
case F_TPDOC:
|
||||||
@ -621,7 +655,8 @@ bool TMov_emask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
{
|
{
|
||||||
if (!test_inputability(fis_ids, _s5[10]))
|
if (!test_inputability(fis_ids, _s5[10]))
|
||||||
return false;
|
return false;
|
||||||
const short fv[] = { F_COSTO, -F_VNONAMM, F_RIV75, F_RIV83, F_RIV90, F_RIV91, F_RIVGF, 0 };
|
const short fv[] = { F_COSTO, -F_VNONAMM, -F_VNONAMM06,
|
||||||
|
F_RIV75, F_RIV83, F_RIV90, F_RIV91, F_RIVGF, 0 };
|
||||||
const short fa[] = { F_NORMALE, F_ACCELERATO, F_ANTICIPATO, F_QPERSE, F_FPRIVATO, F_QPERSEPRIV, 0 };
|
const short fa[] = { F_NORMALE, F_ACCELERATO, F_ANTICIPATO, F_QPERSE, F_FPRIVATO, F_QPERSEPRIV, 0 };
|
||||||
const TCurrency val_amm = sum_fields(fv);
|
const TCurrency val_amm = sum_fields(fv);
|
||||||
const TCurrency fon_amm = sum_fields(fa);
|
const TCurrency fon_amm = sum_fields(fa);
|
||||||
@ -630,8 +665,12 @@ bool TMov_emask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
TString msg;
|
TString msg;
|
||||||
msg << TR("Il fondo ammortamento fiscale (") << fon_amm.string(true) << ')';
|
msg << TR("Il fondo ammortamento fiscale (") << fon_amm.string(true) << ')';
|
||||||
msg << TR("non puo' superare il valore da ammortizzare (") << val_amm.string(true) << ')';
|
msg << TR("non puo' superare il valore da ammortizzare (") << val_amm.string(true) << ')';
|
||||||
return error_box(msg);
|
|
||||||
}
|
// Per i fabbricati scorporati non e' un errore
|
||||||
|
if (_cespite.fabbricato() != tf_nessuno && !field(F_VNONAMM06).empty())
|
||||||
|
warning_box(msg);
|
||||||
|
else
|
||||||
|
return error_box(msg); }
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case F_NORMALE2:
|
case F_NORMALE2:
|
||||||
@ -668,13 +707,29 @@ real TMov_emask::calc_riv(const TRectype& salpro, int tipo) const
|
|||||||
real riv;
|
real riv;
|
||||||
for (int i = 0; riv_ids[i]; i++)
|
for (int i = 0; riv_ids[i]; i++)
|
||||||
riv += salpro.get_real(riv_ids[i]);
|
riv += salpro.get_real(riv_ids[i]);
|
||||||
if (tipo == 1)
|
if (tipo == 1 || _cespite.get_bool(CESPI_LEASING))
|
||||||
riv += salpro.get_real(SALCE_RIVGF);
|
riv += salpro.get_real(SALCE_RIVGF); else
|
||||||
if (tipo == 2)
|
if (tipo == 2 && !_cespite.get_bool(CESPI_LEASING))
|
||||||
riv += salpro.get_real(SALCE_RIVGC);
|
riv += salpro.get_real(SALCE_RIVGC);
|
||||||
return riv;
|
return riv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
real TMov_emask::calc_vnonamm(const TRectype& salpro, int tipo) const
|
||||||
|
{
|
||||||
|
real vnonamm;
|
||||||
|
|
||||||
|
if (tipo == 2)
|
||||||
|
vnonamm += salpro.get_real(SALCE_VNONAMMC);
|
||||||
|
else
|
||||||
|
vnonamm += salpro.get_real(SALCE_VNONAMM);
|
||||||
|
|
||||||
|
if (_cespite.fabbricato() != tf_nessuno)
|
||||||
|
vnonamm += salpro.get_real(SALCE_VNONAMM06);
|
||||||
|
|
||||||
|
return vnonamm;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void TMov_emask::calc_plus_minus(int tipo, real& plus, real& minus) const
|
void TMov_emask::calc_plus_minus(int tipo, real& plus, real& minus) const
|
||||||
{
|
{
|
||||||
TDitta_cespiti& cce = ditta_cespiti();
|
TDitta_cespiti& cce = ditta_cespiti();
|
||||||
@ -712,7 +767,7 @@ void TMov_emask::calc_plus_minus(int tipo, real& plus, real& minus) const
|
|||||||
bool TMov_emask::calc_amm(int tipo)
|
bool TMov_emask::calc_amm(int tipo)
|
||||||
{
|
{
|
||||||
const TString& idcespite = _cespite.get(CESPI_IDCESPITE);
|
const TString& idcespite = _cespite.get(CESPI_IDCESPITE);
|
||||||
if (idcespite.empty())
|
if (idcespite.blank())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
const TDate dtlim(get(F_DTMOV));
|
const TDate dtlim(get(F_DTMOV));
|
||||||
@ -721,13 +776,16 @@ bool TMov_emask::calc_amm(int tipo)
|
|||||||
|
|
||||||
const TRectype& s = _cespite.sal_pro();
|
const TRectype& s = _cespite.sal_pro();
|
||||||
set(S_ELEMENTI, s.get(SALCE_NUMELE));
|
set(S_ELEMENTI, s.get(SALCE_NUMELE));
|
||||||
set(S_COSTO, s.get_real(SALCE_CSTO));
|
set(S_COSTO, s.get_real(SALCE_CSTO));
|
||||||
set(S_VNONAMM, s.get(SALCE_VNONAMM));
|
|
||||||
set(S_PLUSREIN, s.get(SALCE_PLUSREIN));
|
set(S_PLUSREIN, s.get(SALCE_PLUSREIN));
|
||||||
set(S_TOTRIV, calc_riv(s, tipo));
|
set(S_TOTRIV, calc_riv(s, tipo));
|
||||||
|
set(S_VNONAMM, calc_vnonamm(s, tipo));
|
||||||
|
|
||||||
real tot_val;
|
real tot_val;
|
||||||
tot_val += get_real(S_COSTO); tot_val -= get_real(S_VNONAMM);
|
tot_val += get_real(S_COSTO);
|
||||||
tot_val -= get_real(S_PLUSREIN); tot_val += get_real(S_TOTRIV);
|
tot_val += get_real(S_TOTRIV);
|
||||||
|
tot_val -= get_real(S_PLUSREIN);
|
||||||
|
tot_val -= get_real(S_VNONAMM);
|
||||||
set(S_TOTVAL, tot_val);
|
set(S_TOTVAL, tot_val);
|
||||||
|
|
||||||
const TRectype& a = _cespite.amm_pro();
|
const TRectype& a = _cespite.amm_pro();
|
||||||
@ -738,12 +796,12 @@ bool TMov_emask::calc_amm(int tipo)
|
|||||||
set(S_FPRIVATO, a.get(AMMCE_FPRIVATOP));
|
set(S_FPRIVATO, a.get(AMMCE_FPRIVATOP));
|
||||||
set(S_QPERSEP, a.get(AMMCE_QPPRIVATEP));
|
set(S_QPERSEP, a.get(AMMCE_QPPRIVATEP));
|
||||||
real tot_fon;
|
real tot_fon;
|
||||||
tot_fon += get_real(S_NORMALE); tot_fon += get_real(S_ACCELERATO);
|
tot_fon += get_real(S_NORMALE); tot_fon += get_real(S_ACCELERATO);
|
||||||
tot_fon += get_real(S_ANTICIPATO); tot_fon += get_real(S_QPERSE);
|
tot_fon += get_real(S_ANTICIPATO); tot_fon += get_real(S_QPERSE);
|
||||||
tot_fon += get_real(S_FPRIVATO); tot_fon += get_real(S_QPERSEP);
|
tot_fon += get_real(S_FPRIVATO); tot_fon += get_real(S_QPERSEP);
|
||||||
set(S_TOTFON, tot_fon);
|
set(S_TOTFON, tot_fon);
|
||||||
|
|
||||||
const real tot_res = tot_val-tot_fon;
|
const real tot_res = tot_val - tot_fon;
|
||||||
set(S_RESIDUO, tot_res);
|
set(S_RESIDUO, tot_res);
|
||||||
|
|
||||||
real plus, minus;
|
real plus, minus;
|
||||||
|
21
ce/ce1500a.h
21
ce/ce1500a.h
@ -52,13 +52,22 @@
|
|||||||
#define F_RIVGF 210
|
#define F_RIVGF 210
|
||||||
#define F_RIVGC 211
|
#define F_RIVGC 211
|
||||||
#define F_IMPVEN 212
|
#define F_IMPVEN 212
|
||||||
|
#define F_VNONAMMC 213
|
||||||
|
|
||||||
#define F_PLUSMIN_FIS_TXT 221
|
#define F_PLUSMIN_FIS_TXT 221
|
||||||
#define F_PLUSMIN_FIS 222
|
#define F_PLUSMIN_FIS 222
|
||||||
#define F_PLUSMIN_CIV_TXT 223
|
#define F_PLUSMIN_CIV_TXT 223
|
||||||
#define F_PLUSMIN_CIV 224
|
#define F_PLUSMIN_CIV 224
|
||||||
#define F_PLUSMIN_GES_TXT 225
|
#define F_PLUSMIN_GES_TXT 225
|
||||||
#define F_PLUSMIN_GES 226
|
#define F_PLUSMIN_GES 226
|
||||||
|
|
||||||
|
#define F_FABBR06 230
|
||||||
|
#define F_DATASCORP06 231
|
||||||
|
#define F_VALTERR06 232
|
||||||
|
#define F_PERCALC06 233
|
||||||
|
#define F_VALCALC06 234
|
||||||
|
#define F_RISCALC06 235
|
||||||
|
#define F_VNONAMM06 236
|
||||||
|
|
||||||
#define F_IDMOVAM 251
|
#define F_IDMOVAM 251
|
||||||
#define F_IDCESAM 252
|
#define F_IDCESAM 252
|
||||||
|
229
ce/ce1500b.uml
229
ce/ce1500b.uml
@ -1,6 +1,6 @@
|
|||||||
#include "ce1500a.h"
|
#include "ce1500a.h"
|
||||||
|
|
||||||
TOOLBAR "Toolbar" 0 -3 0 3
|
TOOLBAR "Toolbar" 0 -2 0 2
|
||||||
|
|
||||||
#include <toolbar.h>
|
#include <toolbar.h>
|
||||||
|
|
||||||
@ -441,107 +441,280 @@ BEGIN
|
|||||||
FIELD SEGNO
|
FIELD SEGNO
|
||||||
END
|
END
|
||||||
|
|
||||||
|
CURRENCY F_IMPVEN 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 21 10 "Importo vendita "
|
||||||
|
FIELD IMPVEN
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER F_ELEMENTI 4
|
NUMBER F_ELEMENTI 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 11 "Numero elementi "
|
PROMPT 57 10 "Numero elementi "
|
||||||
FIELD NUMELE
|
FIELD NUMELE
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_COSTO 15
|
CURRENCY F_COSTO 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 12 "Costo storico "
|
PROMPT 1 11 "Costo storico "
|
||||||
FIELD CSTO
|
FIELD CSTO
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_VNONAMM 15
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 13 "Valore non ammortizzabile "
|
|
||||||
FIELD VNONAMM
|
|
||||||
END
|
|
||||||
|
|
||||||
CURRENCY F_PLUSREIN 15
|
CURRENCY F_PLUSREIN 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 14 "Plusvalenza reinvestita "
|
PROMPT 37 11 "Plusvalenza reinvestita "
|
||||||
FIELD PLUSREIN
|
FIELD PLUSREIN
|
||||||
END
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 12 "@bValore non ammortizzabile"
|
||||||
|
END
|
||||||
|
|
||||||
|
CURRENCY F_VNONAMM 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 13 "Fiscale "
|
||||||
|
FIELD VNONAMM
|
||||||
|
END
|
||||||
|
|
||||||
|
CURRENCY F_VNONAMMC 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 41 13 "Civilistico "
|
||||||
|
FIELD VNONAMMC
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 15 "@bRivalutazioni"
|
||||||
|
END
|
||||||
|
|
||||||
CURRENCY F_RIV75 15
|
CURRENCY F_RIV75 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 15 "Rivalutazione L. 576/75 "
|
PROMPT 2 16 "L. 576/75 "
|
||||||
FIELD RIV75
|
FIELD RIV75
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_RIV83 15
|
CURRENCY F_RIV83 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 16 "Rivalutazione L. 72/83 "
|
PROMPT 41 16 "L. 72/83 "
|
||||||
FIELD RIV83
|
FIELD RIV83
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_RIV90 15
|
CURRENCY F_RIV90 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 17 "Rivalutazione L. 408/90 "
|
PROMPT 2 17 "L. 408/90 "
|
||||||
FIELD RIV90
|
FIELD RIV90
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_RIV91 15
|
CURRENCY F_RIV91 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 18 "Rivalutazione L. 413/91 "
|
PROMPT 41 17 "L. 413/91 "
|
||||||
FIELD RIV91
|
FIELD RIV91
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_RIVGF 15
|
CURRENCY F_RIVGF 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 19 "Rivalutazione generica fiscale "
|
PROMPT 2 18 "Generica fiscale "
|
||||||
FIELD RIVGF
|
FIELD RIVGF
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_RIVGC 15
|
CURRENCY F_RIVGC 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 20 "Rivalutazione generica civilistica "
|
PROMPT 41 18 "Generica civilistica "
|
||||||
FIELD RIVGC
|
FIELD RIVGC
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_IMPVEN 15
|
|
||||||
BEGIN
|
|
||||||
PROMPT 45 10 "Importo vendita "
|
|
||||||
FIELD IMPVEN
|
|
||||||
END
|
|
||||||
|
|
||||||
TEXT F_PLUSMIN_FIS_TXT
|
TEXT F_PLUSMIN_FIS_TXT
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 12 "Minusvalenza fiscale"
|
PROMPT 1 20 "Minusvalenza fiscale"
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_PLUSMIN_FIS 15
|
CURRENCY F_PLUSMIN_FIS 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 61 13 ""
|
PROMPT 5 21 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT F_PLUSMIN_CIV_TXT
|
TEXT F_PLUSMIN_CIV_TXT
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 15 "Minusvalenza civilistica"
|
PROMPT 25 20 "Minusvalenza civilistica"
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_PLUSMIN_CIV 15
|
CURRENCY F_PLUSMIN_CIV 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 61 16 ""
|
PROMPT 33 21 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT F_PLUSMIN_GES_TXT
|
TEXT F_PLUSMIN_GES_TXT
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 18 "Minusvalenza gestionale"
|
PROMPT 54 20 "Minusvalenza gestionale"
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_PLUSMIN_GES 15
|
CURRENCY F_PLUSMIN_GES 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 61 19 ""
|
PROMPT 62 21 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Fabbricati" -1 -1 78 18
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 1 "@bDitta"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER DLG_NULL 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Ditta "
|
||||||
|
FLAGS "DF"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING DLG_NULL 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 2 ""
|
||||||
|
FLAGS "D"
|
||||||
|
GROUP 1
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER DLG_NULL 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 3 "Esercizio "
|
||||||
|
FLAGS "DZ"
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 3 "Inizio "
|
||||||
|
FLAGS "D"
|
||||||
|
GROUP 3
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 50 3 "Fine "
|
||||||
|
FLAGS "D"
|
||||||
|
GROUP 4
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER DLG_NULL 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Gruppo "
|
||||||
|
FLAGS "DZ"
|
||||||
|
GROUP 5
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING DLG_NULL 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 16 4 "Specie "
|
||||||
|
FLAGS "D"
|
||||||
|
GROUP 6
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING DLG_NULL 60 45
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 4 ""
|
||||||
|
FLAGS "D"
|
||||||
|
GROUP 7
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 6 "@bCespite"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER DLG_NULL 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 7 ""
|
||||||
|
FLAGS "DZ"
|
||||||
|
GROUP 8
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING DLG_NULL 60
|
||||||
|
BEGIN
|
||||||
|
PROMPT 16 7 ""
|
||||||
|
FLAGS "DZ"
|
||||||
|
GROUP 9
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER DLG_NULL 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 8 "Categoria "
|
||||||
|
FLAGS "DZ"
|
||||||
|
GROUP 10
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING DLG_NULL 70 60
|
||||||
|
BEGIN
|
||||||
|
PROMPT 16 8 ""
|
||||||
|
FLAGS "D"
|
||||||
|
GROUP 11
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 9
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 10 "@bScorporo terreno per fabbricati strumentali art.43 D.L.223/06"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST F_FABBR06 13
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 11 "Tipologia del fabbricato "
|
||||||
|
ITEM "0|"
|
||||||
|
ITEM "1|Industriale"
|
||||||
|
ITEM "2|Altro"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DATASCORP06
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 12 "Data immissione scorporo "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
CURRENCY F_VALTERR06 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 13 "Valore del terreno "
|
||||||
|
GROUP 13
|
||||||
|
FIELD VALTERR06
|
||||||
|
END
|
||||||
|
|
||||||
|
CURRENCY F_VALCALC06 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 14 "Valore calcolo % scorporo "
|
||||||
|
FIELD VALCALC06
|
||||||
|
GROUP 13
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_PERCALC06 6 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 15 "% da scorporare "
|
||||||
|
GROUP 13
|
||||||
|
FIELD PERCALC06
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_RISCALC06 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 16 "Risultato dello scorporo "
|
||||||
|
PICTURE ".2"
|
||||||
|
FLAGS "DG"
|
||||||
|
DRIVENBY F_VALCALC06 F_PERCALC06
|
||||||
|
NUM_CALC ROUND(#F_VALCALC06*#F_PERCALC06/100;2)
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_VNONAMM06 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 17 "Costo indeducibile "
|
||||||
|
PICTURE ".2"
|
||||||
|
FIELD VNONAMM06
|
||||||
|
FLAGS "DG"
|
||||||
|
DRIVENBY F_RISCALC06 F_VALTERR06
|
||||||
|
NUM_CALC IF(#F_RISCALC06>#F_VALTERR06;#F_RISCALC06;#F_VALTERR06)
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Fondi" -1 -1 78 18
|
PAGE "Fondi" -1 -1 78 18
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 78 5
|
GROUPBOX DLG_NULL 78 5
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
#include <config.h>
|
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <recarray.h>
|
|
||||||
#include <relation.h>
|
|
||||||
|
|
||||||
#include "ce2100a.h"
|
#include "ce2100a.h"
|
||||||
#include "ce2101.h"
|
#include "ce2101.h"
|
||||||
|
584
ce/ce2101.cpp
584
ce/ce2101.cpp
@ -132,7 +132,17 @@ void TCespite::read_sal(int esercizio)
|
|||||||
TLocalisamfile salce(LF_SALCE);
|
TLocalisamfile salce(LF_SALCE);
|
||||||
fill_sal_key(salce.curr(), esercizio, 1);
|
fill_sal_key(salce.curr(), esercizio, 1);
|
||||||
if (salce.read() == NOERR)
|
if (salce.read() == NOERR)
|
||||||
|
{
|
||||||
_salini = salce.curr();
|
_salini = salce.curr();
|
||||||
|
// Il campo VNONAMMC nasce solo nel 2006, prima era da intendersi uguale a VNONAMM
|
||||||
|
if (!_salini.get_real(SALCE_VNONAMM).is_zero() &&
|
||||||
|
_salini.get_real(SALCE_VNONAMMC).is_zero())
|
||||||
|
{
|
||||||
|
TEsercizi_contabili esc;
|
||||||
|
if (esc[esercizio].inizio() < TDate(4,7,2006))
|
||||||
|
_salini.put(SALCE_VNONAMMC, _salini.get(SALCE_VNONAMM));
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fill_sal_key(_salini, esercizio, 1);
|
fill_sal_key(_salini, esercizio, 1);
|
||||||
@ -165,13 +175,14 @@ void TCespite::read_amm(int esercizio)
|
|||||||
fill_amm_key(_ammpro, esercizio, 2);
|
fill_amm_key(_ammpro, esercizio, 2);
|
||||||
_ammpro.write(ammce);
|
_ammpro.write(ammce);
|
||||||
}
|
}
|
||||||
_ammpro.put(AMMCE_QNORP, _ammini.get(AMMCE_QNOR));
|
_ammpro.put(AMMCE_QNORP, _ammini.get(AMMCE_QNOR));
|
||||||
_ammpro.put(AMMCE_QACCP, _ammini.get(AMMCE_QACC));
|
_ammpro.put(AMMCE_QACCP, _ammini.get(AMMCE_QACC));
|
||||||
_ammpro.put(AMMCE_QANTP, _ammini.get(AMMCE_QANT));
|
_ammpro.put(AMMCE_QANTP, _ammini.get(AMMCE_QANT));
|
||||||
_ammpro.put(AMMCE_QPERSEP, _ammini.get(AMMCE_QPERSE));
|
_ammpro.put(AMMCE_QPERSEP, _ammini.get(AMMCE_QPERSE));
|
||||||
_ammpro.put(AMMCE_FPRIVATOP, _ammini.get(AMMCE_FPRIVATO));
|
_ammpro.put(AMMCE_FPRIVATOP, _ammini.get(AMMCE_FPRIVATO));
|
||||||
_ammpro.put(AMMCE_QPPRIVATEP, _ammini.get(AMMCE_QPPRIVATE));
|
_ammpro.put(AMMCE_QPPRIVATEP, _ammini.get(AMMCE_QPPRIVATE));
|
||||||
_ammpro.put(AMMCE_SCELTE, _ammini.get(AMMCE_SCELTE));
|
_ammpro.put(AMMCE_SCELTE, _ammini.get(AMMCE_SCELTE));
|
||||||
|
_ammpro.put(AMMCE_FRINGEBEN, _ammini.get(AMMCE_FRINGEBEN));
|
||||||
zero_fields(_ammpro, AMMCE_MSG01, AMMCE_MSG02, AMMCE_MSG03, AMMCE_MSG04,
|
zero_fields(_ammpro, AMMCE_MSG01, AMMCE_MSG02, AMMCE_MSG03, AMMCE_MSG04,
|
||||||
AMMCE_MSG05, AMMCE_MSGD05, AMMCE_MSG06, NULL);
|
AMMCE_MSG05, AMMCE_MSGD05, AMMCE_MSG06, NULL);
|
||||||
|
|
||||||
@ -230,6 +241,38 @@ TTipo_cespite TCespite::tipo() const
|
|||||||
return tc==0 ? tc_materiale : (tc==1 ? tc_immateriale : tc_pluriennale);
|
return tc==0 ? tc_materiale : (tc==1 ? tc_immateriale : tc_pluriennale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TTipoFabbricato TCespite::fabbricato() const
|
||||||
|
{
|
||||||
|
TTipoFabbricato tf = tf_nessuno;
|
||||||
|
switch (get_int(CESPI_FABBR06))
|
||||||
|
{
|
||||||
|
case 1: tf = tf_industriale; break;
|
||||||
|
case 2: tf = tf_altro; break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return tf;
|
||||||
|
}
|
||||||
|
|
||||||
|
TTipoVeicolo TCespite::veicolo() const
|
||||||
|
{
|
||||||
|
TTipoVeicolo tv = tv_nessuno; // Normalmente non sono un veicolo!
|
||||||
|
switch (get_int(CESPI_FLGTPVEI))
|
||||||
|
{
|
||||||
|
case 2: tv = tv_automobile; break;
|
||||||
|
case 3: tv = tv_motociclo; break;
|
||||||
|
case 4: tv = tv_ciclomotore; break;
|
||||||
|
case 5: tv = tv_altro; break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return tv;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TCespite::auto_o_moto() const
|
||||||
|
{
|
||||||
|
const TTipoVeicolo tv = veicolo();
|
||||||
|
return tv >= tv_automobile && tv <= tv_ciclomotore;
|
||||||
|
}
|
||||||
|
|
||||||
// Registra un messaggio 5 su AMMPRO
|
// Registra un messaggio 5 su AMMPRO
|
||||||
// Certified 100%
|
// Certified 100%
|
||||||
void TCespite::set_msg05(const char* msg)
|
void TCespite::set_msg05(const char* msg)
|
||||||
@ -320,24 +363,33 @@ bool TCespite::valido()
|
|||||||
// Certified 50%
|
// Certified 50%
|
||||||
real TCespite::val_amm() const
|
real TCespite::val_amm() const
|
||||||
{
|
{
|
||||||
real val = _salpro.get_real(SALCE_CSTO)-_salpro.get_real(SALCE_VNONAMM)-_salpro.get_real(SALCE_PLUSREIN)+
|
real val = sum_fields(_salpro, SALCE_CSTO, SALCE_RIV75, SALCE_RIV83);
|
||||||
_salpro.get_real(SALCE_RIV75)+_salpro.get_real(SALCE_RIV83);
|
val -= sum_fields(_salpro, SALCE_PLUSREIN, SALCE_VNONAMM);
|
||||||
|
|
||||||
if (_tipo_sit == 1 || get_bool(CESPI_LEASING))
|
const bool leasing = get_bool(CESPI_LEASING);
|
||||||
|
if (_tipo_sit == 1 || leasing)
|
||||||
val += _salpro.get_real(SALCE_RIVGF); else
|
val += _salpro.get_real(SALCE_RIVGF); else
|
||||||
if (_tipo_sit == 2 && !get_bool(CESPI_LEASING))
|
if (_tipo_sit == 2 && !leasing)
|
||||||
val += _salpro.get_real(SALCE_RIVGC);
|
val += _salpro.get_real(SALCE_RIVGC);
|
||||||
|
|
||||||
const real riv90 = _salpro.get_real(SALCE_RIV90);
|
const real riv90 = _salpro.get_real(SALCE_RIV90);
|
||||||
const real riv91 = _salpro.get_real(SALCE_RIV91);
|
const real riv91 = _salpro.get_real(SALCE_RIV91);
|
||||||
if (riv90 != ZERO || riv91 != ZERO)
|
if (!riv90.is_zero() || !riv91.is_zero())
|
||||||
{
|
{
|
||||||
const int annipost90 = _salpro.get_int(SALCE_ANNIPOST90);
|
const int annipost90 = _salpro.get_int(SALCE_ANNIPOST90);
|
||||||
if (riv91 != ZERO || annipost90 >= 3)
|
if (!riv91.is_zero() || annipost90 >= 3)
|
||||||
val += riv90;
|
val += riv90;
|
||||||
|
val += riv91;
|
||||||
}
|
}
|
||||||
val += riv91;
|
|
||||||
|
// Novita' 2006: gestione VNONAMM06 e VNONAMMC
|
||||||
|
val -= _salpro.get_real(SALCE_VNONAMM06);
|
||||||
|
if (_tipo_sit == 2)
|
||||||
|
{
|
||||||
|
val += _salpro.get_real(SALCE_VNONAMM); // Metto nuovamente il VNONAMM fiscale ...
|
||||||
|
val -= _salpro.get_real(SALCE_VNONAMMC); // ... poi tolgo il civilistico
|
||||||
|
}
|
||||||
|
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -346,13 +398,10 @@ real TCespite::val_amm() const
|
|||||||
real TCespite::res_amm() const
|
real TCespite::res_amm() const
|
||||||
{
|
{
|
||||||
const real valamm = val_amm(); // Valore ammortizzabile
|
const real valamm = val_amm(); // Valore ammortizzabile
|
||||||
real fondo; // Fondo ammortamento
|
|
||||||
fondo += _ammpro.get_real(AMMCE_QNORP);
|
// Fondo ammortamento
|
||||||
fondo += _ammpro.get_real(AMMCE_QANTP);
|
const real fondo = sum_fields(_ammpro, AMMCE_QNORP, AMMCE_QANTP, AMMCE_QACCP,
|
||||||
fondo += _ammpro.get_real(AMMCE_QACCP);
|
AMMCE_QPERSEP, AMMCE_QPPRIVATEP, AMMCE_FPRIVATOP);
|
||||||
fondo += _ammpro.get_real(AMMCE_QPERSEP);
|
|
||||||
fondo += _ammpro.get_real(AMMCE_QPPRIVATEP);
|
|
||||||
fondo += _ammpro.get_real(AMMCE_FPRIVATOP);
|
|
||||||
const real resamm = valamm - fondo; // Residuo da ammortizzare
|
const real resamm = valamm - fondo; // Residuo da ammortizzare
|
||||||
return resamm;
|
return resamm;
|
||||||
}
|
}
|
||||||
@ -395,9 +444,8 @@ real TCespite::get_limit() const
|
|||||||
{
|
{
|
||||||
real limite = -1.0; // Partiamo con limite non valido che in realtà e' considerato +infinito
|
real limite = -1.0; // Partiamo con limite non valido che in realtà e' considerato +infinito
|
||||||
|
|
||||||
const int tipo_veicolo = get_int(CESPI_FLGTPVEI);
|
|
||||||
// Mi pare inutile cercare limiti se è un veicolo senza limiti!
|
// Mi pare inutile cercare limiti se è un veicolo senza limiti!
|
||||||
if (tipo_veicolo > 1 && tipo_veicolo < 5)
|
if (auto_o_moto())
|
||||||
{
|
{
|
||||||
TDate inies, fines;
|
TDate inies, fines;
|
||||||
ditta_cespiti().esercizio_corrente(inies, fines);
|
ditta_cespiti().esercizio_corrente(inies, fines);
|
||||||
@ -406,26 +454,57 @@ real TCespite::get_limit() const
|
|||||||
// Stabilisce il limite in base al tipo di veicolo ed al suo uso
|
// Stabilisce il limite in base al tipo di veicolo ed al suo uso
|
||||||
if (!clm.empty())
|
if (!clm.empty())
|
||||||
{
|
{
|
||||||
|
const TTipoVeicolo tipo_veicolo = veicolo();
|
||||||
switch(tipo_veicolo)
|
switch(tipo_veicolo)
|
||||||
{
|
{
|
||||||
case 2: // Autoveicolo
|
case tv_automobile:
|
||||||
{
|
{
|
||||||
const int uso_promiscuo = get_int(CESPI_USOPROM);
|
const int uso_promiscuo = get_int(CESPI_USOPROM);
|
||||||
if (uso_promiscuo == 2 || uso_promiscuo == 4)
|
if (uso_promiscuo == 2)
|
||||||
limite = clm.get_real("R0"); else
|
limite = clm.get_real("R0"); else
|
||||||
if (uso_promiscuo == 3 || uso_promiscuo == 5)
|
if (uso_promiscuo == 3)
|
||||||
limite = clm.get_real("R1");
|
limite = clm.get_real("R1");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3: limite = clm.get_real("R2"); break; // Motociclo
|
case tv_motociclo : limite = clm.get_real("R2"); break;
|
||||||
case 4: limite = clm.get_real("R3"); break; // Ciclomotore
|
case tv_ciclomotore: limite = clm.get_real("R3"); break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return limite;
|
return limite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
real TCespite::percentuale_deducibilita() const
|
||||||
|
{
|
||||||
|
real percento;
|
||||||
|
const int uso_promiscuo = get_int(CESPI_USOPROM);
|
||||||
|
switch (uso_promiscuo)
|
||||||
|
{
|
||||||
|
case 2: // Beni in uso promiscuo
|
||||||
|
percento = 50;
|
||||||
|
if (ditta_cespiti().legge_223_06())
|
||||||
|
{
|
||||||
|
if (auto_o_moto()) // Automobili, motocicli e ciclomotori
|
||||||
|
{
|
||||||
|
if (ditta_cespiti().professionista())
|
||||||
|
percento = 25;
|
||||||
|
else
|
||||||
|
percento = ZERO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
percento = 80; // Beni raccomandati?
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
percento = CENTO; // Beni strumentali al 100%
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return percento;
|
||||||
|
}
|
||||||
|
|
||||||
// Calcola spese manutenzione da scrivere su SALPRO
|
// Calcola spese manutenzione da scrivere su SALPRO
|
||||||
// Certified 75%
|
// Certified 75%
|
||||||
real TCespite::calcola_spese_manutenzione(const real& valamm)
|
real TCespite::calcola_spese_manutenzione(const real& valamm)
|
||||||
@ -435,18 +514,17 @@ real TCespite::calcola_spese_manutenzione(const real& valamm)
|
|||||||
real vspmanu = valamm;
|
real vspmanu = valamm;
|
||||||
if (!cce.esercizio_costituzione())
|
if (!cce.esercizio_costituzione())
|
||||||
{
|
{
|
||||||
const real coeff = cce.coefficiente_durata_esercizio();
|
const real limite = get_limit(); // se limite < 0 significa infinito
|
||||||
real limite = get_limit();
|
if (limite > ZERO && vspmanu > limite)
|
||||||
if (vspmanu < limite || limite < ZERO) // Limite < 0 = nessun limite
|
vspmanu = limite;
|
||||||
limite = vspmanu;
|
vspmanu *= cce.coefficiente_durata_esercizio();
|
||||||
vspmanu = coeff * limite;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const int usoprom = get_int(CESPI_USOPROM);
|
const real perded = percentuale_deducibilita();
|
||||||
if (usoprom == 2 || usoprom == 4)
|
if (perded < CENTO)
|
||||||
vspmanu = vspmanu * 0.50; else // 50%
|
vspmanu = vspmanu * perded / CENTO;
|
||||||
if (usoprom == 3 || usoprom == 5)
|
|
||||||
vspmanu = vspmanu * 0.80; // 80%
|
// Non arrotondare qui! Altrove serve così com'è
|
||||||
return vspmanu;
|
return vspmanu;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -464,7 +542,7 @@ void TCespite::prepara_saldi(bool is_valid)
|
|||||||
if ((tpspeman == 2 || tpspeman == 3) && inies.year() > cce.anno_tuir())
|
if ((tpspeman == 2 || tpspeman == 3) && inies.year() > cce.anno_tuir())
|
||||||
{
|
{
|
||||||
const real valamm = val_amm();
|
const real valamm = val_amm();
|
||||||
real vspmanu = calcola_spese_manutenzione(valamm); // Non arrotondare qui! Altrove serve così com'è
|
real vspmanu = calcola_spese_manutenzione(valamm);
|
||||||
cce.arrotonda(vspmanu);
|
cce.arrotonda(vspmanu);
|
||||||
_salpro.put(SALCE_VSPMANU, vspmanu);
|
_salpro.put(SALCE_VSPMANU, vspmanu);
|
||||||
}
|
}
|
||||||
@ -492,6 +570,11 @@ void TCespite::incr_field(TRectype& dst, const char* fdst, const TRectype& src,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TCespite::decr_field(TRectype& dst, const char* fdst, const TRectype& src, const char* fsrc, char segno) const
|
||||||
|
{
|
||||||
|
incr_field(dst, fdst, src, fsrc, segno == '+' ? '-' : '+');
|
||||||
|
}
|
||||||
|
|
||||||
// Applica tutte le rettifice al movimento tmv
|
// Applica tutte le rettifice al movimento tmv
|
||||||
// Certified 50%
|
// Certified 50%
|
||||||
void TCespite::applica_rettifiche(TRectype& tmv, TRectype& tmvam)
|
void TCespite::applica_rettifiche(TRectype& tmv, TRectype& tmvam)
|
||||||
@ -529,7 +612,6 @@ void TCespite::applica_rettifiche(TRectype& tmv, TRectype& tmvam)
|
|||||||
const char segno = segno_mov == segno_ret ? '+' : '-';
|
const char segno = segno_mov == segno_ret ? '+' : '-';
|
||||||
incr_field(tmv, MOVCE_NUMELE, movret, MOVCE_NUMELE, segno);
|
incr_field(tmv, MOVCE_NUMELE, movret, MOVCE_NUMELE, segno);
|
||||||
incr_field(tmv, MOVCE_CSTO, movret, MOVCE_CSTO, segno);
|
incr_field(tmv, MOVCE_CSTO, movret, MOVCE_CSTO, segno);
|
||||||
incr_field(tmv, MOVCE_VNONAMM, movret, MOVCE_VNONAMM, segno);
|
|
||||||
incr_field(tmv, MOVCE_PLUSREIN, movret, MOVCE_PLUSREIN, segno);
|
incr_field(tmv, MOVCE_PLUSREIN, movret, MOVCE_PLUSREIN, segno);
|
||||||
incr_field(tmv, MOVCE_RIV75, movret, MOVCE_RIV75, segno);
|
incr_field(tmv, MOVCE_RIV75, movret, MOVCE_RIV75, segno);
|
||||||
incr_field(tmv, MOVCE_RIV83, movret, MOVCE_RIV83, segno);
|
incr_field(tmv, MOVCE_RIV83, movret, MOVCE_RIV83, segno);
|
||||||
@ -538,7 +620,10 @@ void TCespite::applica_rettifiche(TRectype& tmv, TRectype& tmvam)
|
|||||||
incr_field(tmv, MOVCE_RIVGF, movret, MOVCE_RIVGF, segno);
|
incr_field(tmv, MOVCE_RIVGF, movret, MOVCE_RIVGF, segno);
|
||||||
incr_field(tmv, MOVCE_RIVGC, movret, MOVCE_RIVGC, segno);
|
incr_field(tmv, MOVCE_RIVGC, movret, MOVCE_RIVGC, segno);
|
||||||
incr_field(tmv, MOVCE_IMPVEN, movret, MOVCE_IMPVEN, segno);
|
incr_field(tmv, MOVCE_IMPVEN, movret, MOVCE_IMPVEN, segno);
|
||||||
|
incr_field(tmv, MOVCE_VNONAMM, movret, MOVCE_VNONAMM, segno);
|
||||||
|
incr_field(tmv, MOVCE_VNONAMMC, movret, MOVCE_VNONAMMC, segno);
|
||||||
|
incr_field(tmv, MOVCE_VNONAMM06,movret, MOVCE_VNONAMM06,segno);
|
||||||
|
|
||||||
if (rel.is_first_match(LF_MOVAM))
|
if (rel.is_first_match(LF_MOVAM))
|
||||||
{
|
{
|
||||||
const TRectype& ammret = rel.curr(LF_MOVAM);
|
const TRectype& ammret = rel.curr(LF_MOVAM);
|
||||||
@ -558,7 +643,6 @@ void TCespite::aggiorna_salpro(const TRectype& tmv, const TRectype& tmvam, char
|
|||||||
log(TR("= Aggiornamento saldi ed ammortamenti progressivi"));
|
log(TR("= Aggiornamento saldi ed ammortamenti progressivi"));
|
||||||
incr_field(_salpro, SALCE_NUMELE, tmv, MOVCE_NUMELE, segno);
|
incr_field(_salpro, SALCE_NUMELE, tmv, MOVCE_NUMELE, segno);
|
||||||
incr_field(_salpro, SALCE_CSTO, tmv, MOVCE_CSTO, segno);
|
incr_field(_salpro, SALCE_CSTO, tmv, MOVCE_CSTO, segno);
|
||||||
incr_field(_salpro, SALCE_VNONAMM, tmv, MOVCE_VNONAMM, segno);
|
|
||||||
incr_field(_salpro, SALCE_PLUSREIN, tmv, MOVCE_PLUSREIN, segno);
|
incr_field(_salpro, SALCE_PLUSREIN, tmv, MOVCE_PLUSREIN, segno);
|
||||||
incr_field(_salpro, SALCE_RIV75, tmv, MOVCE_RIV75, segno);
|
incr_field(_salpro, SALCE_RIV75, tmv, MOVCE_RIV75, segno);
|
||||||
incr_field(_salpro, SALCE_RIV83, tmv, MOVCE_RIV83, segno);
|
incr_field(_salpro, SALCE_RIV83, tmv, MOVCE_RIV83, segno);
|
||||||
@ -566,7 +650,13 @@ void TCespite::aggiorna_salpro(const TRectype& tmv, const TRectype& tmvam, char
|
|||||||
incr_field(_salpro, SALCE_RIV91, tmv, MOVCE_RIV91, segno);
|
incr_field(_salpro, SALCE_RIV91, tmv, MOVCE_RIV91, segno);
|
||||||
incr_field(_salpro, SALCE_RIVGF, tmv, MOVCE_RIVGF, segno);
|
incr_field(_salpro, SALCE_RIVGF, tmv, MOVCE_RIVGF, segno);
|
||||||
incr_field(_salpro, SALCE_RIVGC, tmv, MOVCE_RIVGC, segno);
|
incr_field(_salpro, SALCE_RIVGC, tmv, MOVCE_RIVGC, segno);
|
||||||
incr_field(_salpro, SALCE_VSPMANU, tmv, "VSPMANU", segno); // Campo virtuale su tmv!
|
incr_field(_salpro, SALCE_VNONAMM, tmv, MOVCE_VNONAMM, segno);
|
||||||
|
incr_field(_salpro, SALCE_VSPMANU, tmv, "VSPMANU", segno); // Campo virtuale su tmv!
|
||||||
|
|
||||||
|
// Nuova gestione fabbricati Legge 223/06
|
||||||
|
incr_field(_salpro, SALCE_VNONAMM06, tmv, MOVCE_VNONAMM06, segno);
|
||||||
|
incr_field(_salpro, SALCE_VNONAMMC, tmv, MOVCE_VNONAMMC, segno);
|
||||||
|
|
||||||
save_sal();
|
save_sal();
|
||||||
|
|
||||||
incr_field(_ammpro, AMMCE_QNORP, tmvam, MOVAM_QNOR, segno);
|
incr_field(_ammpro, AMMCE_QNORP, tmvam, MOVAM_QNOR, segno);
|
||||||
@ -584,13 +674,14 @@ real TCespite::mov_val_amm(const TRectype& tmv) const
|
|||||||
{
|
{
|
||||||
const real riv90 = tmv.get_real(MOVCE_RIV90);
|
const real riv90 = tmv.get_real(MOVCE_RIV90);
|
||||||
const real riv91 = tmv.get_real(MOVCE_RIV91);
|
const real riv91 = tmv.get_real(MOVCE_RIV91);
|
||||||
real val = tmv.get_real(MOVCE_CSTO) - tmv.get_real(MOVCE_VNONAMM) + tmv.get_real(MOVCE_RIV75) +
|
real val = sum_fields(tmv, MOVCE_CSTO, MOVCE_RIV75, MOVCE_RIV83);
|
||||||
tmv.get_real(MOVCE_RIV83) + riv90 + riv91;
|
val += riv90 + riv91 - tmv.get_real(MOVCE_VNONAMM);
|
||||||
|
|
||||||
if (_tipo_sit == 1 || get_bool(CESPI_LEASING))
|
const bool leasing = get_bool(CESPI_LEASING);
|
||||||
val += tmv.get_real(SALCE_RIVGF);
|
if (_tipo_sit == 1 || leasing)
|
||||||
if (_tipo_sit == 2 && !get_bool(CESPI_LEASING))
|
val += tmv.get_real(MOVCE_RIVGF);
|
||||||
val += tmv.get_real(SALCE_RIVGC);
|
if (_tipo_sit == 2 && !leasing)
|
||||||
|
val += tmv.get_real(MOVCE_RIVGC);
|
||||||
|
|
||||||
const int anni_post90 = _salini.get_int(SALCE_ANNIPOST90);
|
const int anni_post90 = _salini.get_int(SALCE_ANNIPOST90);
|
||||||
const int anni_post91 = _salini.get_int(SALCE_ANNIPOST91);
|
const int anni_post91 = _salini.get_int(SALCE_ANNIPOST91);
|
||||||
@ -606,6 +697,14 @@ real TCespite::mov_val_amm(const TRectype& tmv) const
|
|||||||
}
|
}
|
||||||
if (anni_post91 == 0)
|
if (anni_post91 == 0)
|
||||||
val -= riv91;
|
val -= riv91;
|
||||||
|
|
||||||
|
// Legge 223/06
|
||||||
|
val -= tmv.get_real(MOVCE_VNONAMM06);
|
||||||
|
if (_tipo_sit == 2)
|
||||||
|
{
|
||||||
|
val += tmv.get_real(MOVCE_VNONAMM); // Recupero VNONAMM fiscale ...
|
||||||
|
val -= tmv.get_real(MOVCE_VNONAMMC); // ... sottraggo il civilistico
|
||||||
|
}
|
||||||
|
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
@ -625,13 +724,16 @@ real TCespite::mov_res_amm(const TRectype& tmv, const TRectype& tmvam) const
|
|||||||
// Cerified 90%
|
// Cerified 90%
|
||||||
void TCespite::rip_jolly(TRelation& rel, const real& num, const real& den, int mode)
|
void TCespite::rip_jolly(TRelation& rel, const real& num, const real& den, int mode)
|
||||||
{
|
{
|
||||||
TDitta_cespiti& cce = ditta_cespiti();
|
const TDitta_cespiti& cce = ditta_cespiti();
|
||||||
|
|
||||||
if (mode & 0x1)
|
if (mode & 0x1)
|
||||||
{
|
{
|
||||||
TRectype& movsem = rel.curr(LF_MOVCE);
|
TRectype& movsem = rel.curr(LF_MOVCE);
|
||||||
const char* flm[] = { MOVCE_CSTO, MOVCE_VNONAMM, MOVCE_PLUSREIN, MOVCE_RIV75, MOVCE_RIV83,
|
const char* flm[] = { MOVCE_CSTO, MOVCE_PLUSREIN,
|
||||||
MOVCE_RIV90, MOVCE_RIV91, MOVCE_RIVGF, MOVCE_RIVGC, NULL };
|
MOVCE_RIV75, MOVCE_RIV83, MOVCE_RIV90, MOVCE_RIV91,
|
||||||
|
MOVCE_RIVGF, MOVCE_RIVGC,
|
||||||
|
MOVCE_VNONAMM, MOVCE_VNONAMMC, MOVCE_VNONAMM06, NULL };
|
||||||
|
|
||||||
for (int i = 0; flm[i]; i++)
|
for (int i = 0; flm[i]; i++)
|
||||||
{
|
{
|
||||||
real n = _salpro.get_real(flm[i]);
|
real n = _salpro.get_real(flm[i]);
|
||||||
@ -701,7 +803,7 @@ int TCespite::test_rip(TRelation& rel)
|
|||||||
{
|
{
|
||||||
int rip_flag = 0x0;
|
int rip_flag = 0x0;
|
||||||
|
|
||||||
if (_salpro.get_long(SALCE_NUMELE) == 0L || _salpro.get_real(SALCE_CSTO) == ZERO)
|
if (_salpro.get_long(SALCE_NUMELE) == 0L || _salpro.get_real(SALCE_CSTO).is_zero())
|
||||||
return rip_flag;
|
return rip_flag;
|
||||||
|
|
||||||
const TRectype& movsem = rel.curr();
|
const TRectype& movsem = rel.curr();
|
||||||
@ -719,20 +821,20 @@ int TCespite::test_rip(TRelation& rel)
|
|||||||
rip_flag |= 0x1;
|
rip_flag |= 0x1;
|
||||||
|
|
||||||
// Determina se considerare le rivalutazioni fiscali o civilistiche
|
// Determina se considerare le rivalutazioni fiscali o civilistiche
|
||||||
const char* rivgfgc = NULL;
|
const bool leasing = get_bool(CESPI_LEASING);
|
||||||
if (_tipo_sit == 1)
|
const char* riv_gen_fc = NULL;
|
||||||
rivgfgc = MOVCE_RIVGF;
|
if (_tipo_sit==1 || leasing)
|
||||||
else
|
riv_gen_fc = MOVCE_RIVGF; else
|
||||||
{
|
if (_tipo_sit==2 && !leasing)
|
||||||
if (_tipo_sit == 2)
|
riv_gen_fc = MOVCE_RIVGC;
|
||||||
rivgfgc = MOVCE_RIVGC;
|
bool null_movce = null_fields(movsem, MOVCE_PLUSREIN, MOVCE_RIV75,
|
||||||
}
|
MOVCE_RIV83, MOVCE_RIV90, MOVCE_RIV91,
|
||||||
bool null_movce = null_fields(movsem, MOVCE_VNONAMM, MOVCE_PLUSREIN, MOVCE_RIV75,
|
MOVCE_VNONAMM, MOVCE_VNONAMMC, MOVCE_VNONAMM06,
|
||||||
MOVCE_RIV83, MOVCE_RIV90, MOVCE_RIV91, rivgfgc);
|
riv_gen_fc);
|
||||||
if (null_movce)
|
if (null_movce)
|
||||||
rip_flag |= 0x2;
|
rip_flag |= 0x2;
|
||||||
|
|
||||||
if (rip_flag)
|
if (rip_flag != 0)
|
||||||
{
|
{
|
||||||
if (movsem.get_real(MOVCE_CSTO).is_zero())
|
if (movsem.get_real(MOVCE_CSTO).is_zero())
|
||||||
rip_elem(rel, rip_flag);
|
rip_elem(rel, rip_flag);
|
||||||
@ -743,24 +845,24 @@ int TCespite::test_rip(TRelation& rel)
|
|||||||
return rip_flag;
|
return rip_flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calcola una quota di ammortamento: semplicemente moltiplica il valore ammortizzabile per una
|
// Calcola una quota di ammortamento: semplicemente moltiplica il valore ammortizzabile
|
||||||
// percentuale ed ottiene la quota. Se questa supera il residuo da ammortizzare allora
|
// per una percentuale ed ottiene la quota.
|
||||||
// pone la quota uguale al residuo e ricalcola la percentuale effettiva
|
// Se questa supera il residuo da ammortizzare allora pone la quota uguale al residuo e
|
||||||
|
// ricalcola la percentuale effettiva
|
||||||
real TCespite::calc_quota(const real& valamm, const real& perric,
|
real TCespite::calc_quota(const real& valamm, const real& perric,
|
||||||
const real& residuo, real& pereff, TRelation* mov /* =NULL */)
|
const real& residuo, real& pereff, TRelation* mov /* =NULL */)
|
||||||
{
|
{
|
||||||
real quota;
|
// Caso anomalo di percentuale o valore nulli
|
||||||
|
|
||||||
// Caso anomalo di percentuale nulla
|
|
||||||
if (perric <= ZERO || valamm <= ZERO)
|
if (perric <= ZERO || valamm <= ZERO)
|
||||||
{
|
{
|
||||||
pereff = ZERO;
|
pereff = ZERO;
|
||||||
return quota;
|
return ZERO;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Caso normale
|
// Caso normale
|
||||||
quota = valamm * perric / CENTO;
|
real quota = valamm * perric / CENTO;
|
||||||
pereff = perric;
|
pereff = perric;
|
||||||
|
|
||||||
|
|
||||||
const TDitta_cespiti& cce = ditta_cespiti();
|
const TDitta_cespiti& cce = ditta_cespiti();
|
||||||
if (mov != NULL && cce.ragguaglio_ammortamenti_parti_vendute())
|
if (mov != NULL && cce.ragguaglio_ammortamenti_parti_vendute())
|
||||||
@ -776,9 +878,9 @@ real TCespite::calc_quota(const real& valamm, const real& perric,
|
|||||||
const long giorni_possesso = dtmov - fnc_max(inies, dtcomp) + 1;
|
const long giorni_possesso = dtmov - fnc_max(inies, dtcomp) + 1;
|
||||||
const long giorni_esercizio = fines - inies + 1;
|
const long giorni_esercizio = fines - inies + 1;
|
||||||
quota = quota * giorni_possesso / giorni_esercizio;
|
quota = quota * giorni_possesso / giorni_esercizio;
|
||||||
note << TR("Ammortamenti ragguagliati a ")
|
note.format(
|
||||||
<< giorni_possesso << TR(" giorni di possesso su ")
|
FR("Ammortamenti ragguagliati a %d giorni di possesso su %d d'esercizio"),
|
||||||
<< giorni_esercizio << TR(" giorni dell'esercizio");
|
giorni_possesso, giorni_esercizio);
|
||||||
}
|
}
|
||||||
ammmv.put(AMMMV_NOTE, note);
|
ammmv.put(AMMMV_NOTE, note);
|
||||||
}
|
}
|
||||||
@ -786,15 +888,10 @@ real TCespite::calc_quota(const real& valamm, const real& perric,
|
|||||||
const real coeff_durata = cce.coefficiente_durata_esercizio();
|
const real coeff_durata = cce.coefficiente_durata_esercizio();
|
||||||
quota *= coeff_durata;
|
quota *= coeff_durata;
|
||||||
cce.arrotonda(quota);
|
cce.arrotonda(quota);
|
||||||
if (quota > residuo)
|
|
||||||
{
|
|
||||||
quota = residuo;
|
|
||||||
if (valamm > ZERO)
|
|
||||||
pereff = (quota * CENTO) / (coeff_durata * valamm);
|
|
||||||
else
|
|
||||||
pereff = ZERO;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (quota > residuo)
|
||||||
|
quota = residuo;
|
||||||
|
pereff = (quota * CENTO) / (coeff_durata * valamm);
|
||||||
return quota;
|
return quota;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -806,7 +903,7 @@ real TCespite::calc_quote_perse(const real& valamm, const real& peric, const rea
|
|||||||
const TDitta_cespiti& cce = ditta_cespiti();
|
const TDitta_cespiti& cce = ditta_cespiti();
|
||||||
const real coeff_durata = cce.coefficiente_durata_esercizio();
|
const real coeff_durata = cce.coefficiente_durata_esercizio();
|
||||||
|
|
||||||
real quota = valamm * peric / CENTO * coeff_durata;
|
real quota = valamm * coeff_durata * peric / CENTO;
|
||||||
if (mov_vend)
|
if (mov_vend)
|
||||||
{
|
{
|
||||||
TDate inies, fines;
|
TDate inies, fines;
|
||||||
@ -834,37 +931,23 @@ real TCespite::calc_quote_perse(const real& valamm, const real& peric, const rea
|
|||||||
|
|
||||||
void TCespite::agg_quota(const real& movvalamm, TRectype& rec, const char* field, bool calcq)
|
void TCespite::agg_quota(const real& movvalamm, TRectype& rec, const char* field, bool calcq)
|
||||||
{
|
{
|
||||||
const int tipo_veicolo = get_int(CESPI_FLGTPVEI);
|
const real percento = percentuale_deducibilita();
|
||||||
const int uso_promiscuo = get_int(CESPI_USOPROM);
|
if (percento < CENTO)
|
||||||
|
|
||||||
real perc;
|
|
||||||
switch (uso_promiscuo)
|
|
||||||
{
|
|
||||||
case 2:
|
|
||||||
case 4: perc = 0.5; break;
|
|
||||||
case 3:
|
|
||||||
case 5: perc = 0.8; break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (perc > ZERO)
|
|
||||||
{
|
{
|
||||||
const real mva = (rec.num() == LF_AMMMV) ? movvalamm : val_amm();
|
const real mva = (rec.num() == LF_AMMMV) ? movvalamm : val_amm();
|
||||||
|
|
||||||
real clim;
|
real clim = mva;
|
||||||
if (tipo_veicolo >= 2 && tipo_veicolo <= 4)
|
if (auto_o_moto()) // Auto, motociclo, ciclomotore
|
||||||
{
|
{
|
||||||
clim = get_limit();
|
clim = get_limit();
|
||||||
if (clim < ZERO || mva < clim)
|
if (clim < ZERO || mva < clim)
|
||||||
clim = mva;
|
clim = mva;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
clim = mva;
|
|
||||||
|
|
||||||
const TDitta_cespiti& cce = ditta_cespiti();
|
const TDitta_cespiti& cce = ditta_cespiti();
|
||||||
const real quotat = rec.get_real(field);
|
const real quotat = rec.get_real(field);
|
||||||
const real limcsto = clim / mva;
|
const real limcsto = clim / mva;
|
||||||
real campo = quotat * limcsto * perc;
|
real campo = quotat * limcsto * percento / CENTO;
|
||||||
cce.arrotonda(campo);
|
cce.arrotonda(campo);
|
||||||
rec.put(field, campo);
|
rec.put(field, campo);
|
||||||
if (strcmp(field, "QNOR") == 0)
|
if (strcmp(field, "QNOR") == 0)
|
||||||
@ -874,7 +957,7 @@ void TCespite::agg_quota(const real& movvalamm, TRectype& rec, const char* field
|
|||||||
if (calcq)
|
if (calcq)
|
||||||
{
|
{
|
||||||
const real quotap = rec.get_real("QPERSE");
|
const real quotap = rec.get_real("QPERSE");
|
||||||
real qp = quotap * limcsto * perc;
|
real qp = quotap * limcsto * percento / CENTO;
|
||||||
cce.arrotonda(qp);
|
cce.arrotonda(qp);
|
||||||
rec.put("QPERSE", qp);
|
rec.put("QPERSE", qp);
|
||||||
rec.put("QPPRIVATE", quotap - qp);
|
rec.put("QPPRIVATE", quotap - qp);
|
||||||
@ -894,59 +977,98 @@ HIDDEN const TString& catdi_get(const TRectype* pcatdi, const char* name, int si
|
|||||||
// Non sempre basta prendere un campo da AMMINI così com'è:
|
// Non sempre basta prendere un campo da AMMINI così com'è:
|
||||||
// in base al campo SCELTE esistono campi speciali da prelevare dalle categorie
|
// in base al campo SCELTE esistono campi speciali da prelevare dalle categorie
|
||||||
// con le seguenti "semplici" modalità
|
// con le seguenti "semplici" modalità
|
||||||
TString& TCespite::ammini_get(const char* pstar) const
|
const TString& TCespite::ammini_get(const char* pstar) const
|
||||||
{
|
{
|
||||||
static TString _val;
|
TString16 val = _ammini.get(pstar);
|
||||||
_val = _ammini.get(pstar);
|
|
||||||
|
|
||||||
TToken_string special = "AMMRIT|CSCEN|PNOR|PACC|PANT";
|
TToken_string special = "AMMRIT|CSCEN|PNOR|PACC|PANT";
|
||||||
const int fld = special.get_pos(pstar);
|
const int fld = special.get_pos(pstar);
|
||||||
if (fld < 0) // Should NEVER happen: tuttavia non è affatto grave!
|
if (fld >= 0) // Should ALWAYS happen: tuttavia non è affatto grave!
|
||||||
return _val;
|
{
|
||||||
|
const TRectype* pcatdi = NULL;
|
||||||
|
const TRectype* pcac = NULL;
|
||||||
|
|
||||||
const TRectype* pcatdi = NULL;
|
// L'utente fa le sue scelte: ma saranno sensate e coerenti?
|
||||||
const TRectype* pcac = NULL;
|
int scelte = _ammini.get_int(AMMCE_SCELTE);
|
||||||
|
if (scelte != 1) // Cerco se esiste un record appropriato su CATDI
|
||||||
// L'utente fa le sue scelte: ma saranno sensate e coerenti?
|
|
||||||
int scelte = _ammini.get_int(AMMCE_SCELTE);
|
|
||||||
if (scelte != 1) // Cerco se esiste un record appropriato su CATDI
|
|
||||||
{
|
|
||||||
const int anno = ditta_cespiti().esercizio_corrente();
|
|
||||||
const int gruppo = get_int(CESPI_CODCGRA);
|
|
||||||
const TString4 specie = get(CESPI_CODSPA);
|
|
||||||
const int categ = get_int(CESPI_CODCAT);
|
|
||||||
TString80 key; key.format("%d|%d|%s|%d", anno, gruppo, (const char*)specie, categ);
|
|
||||||
const TRectype& catdi = cache().get(LF_CATDI, key);
|
|
||||||
if (!catdi.empty())
|
|
||||||
{
|
{
|
||||||
pcatdi = &catdi;
|
const int anno = ditta_cespiti().esercizio_corrente();
|
||||||
scelte = 2;
|
const int gruppo = get_int(CESPI_CODCGRA);
|
||||||
}
|
const TString4 specie = get(CESPI_CODSPA);
|
||||||
else
|
const int categ = get_int(CESPI_CODCAT);
|
||||||
scelte = 0; // Non trovato: riprova con CAC
|
TString80 key; key.format("%d|%d|%s|%d", anno, gruppo, (const char*)specie, categ);
|
||||||
}
|
const TRectype& catdi = cache().get(LF_CATDI, key);
|
||||||
if (scelte == 0) // Cerco se esiste un record appropriato su CAC
|
if (!catdi.empty())
|
||||||
{
|
|
||||||
const TRectype& cac = categoria();
|
|
||||||
if (!cac.empty())
|
|
||||||
pcac = &cac;
|
|
||||||
else
|
|
||||||
scelte = 1; // Non trovato: usa direttamente AMMCE
|
|
||||||
}
|
|
||||||
if (scelte != 1) // L'utente non ha fatto una esplicita scelta per cespite!
|
|
||||||
{
|
|
||||||
const TTipo_cespite tc = tipo();
|
|
||||||
switch (fld)
|
|
||||||
{
|
|
||||||
case 0: // AMMRIT
|
|
||||||
case 1: // CSCEN
|
|
||||||
if (tc == tc_materiale && scelte == 2)
|
|
||||||
_val = pcatdi->get(pstar);
|
|
||||||
break;
|
|
||||||
case 2: // PNOR
|
|
||||||
switch (tc)
|
|
||||||
{
|
{
|
||||||
case tc_materiale:
|
pcatdi = &catdi;
|
||||||
|
scelte = 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
scelte = 0; // Non trovato: riprova con CAC
|
||||||
|
}
|
||||||
|
if (scelte == 0) // Cerco se esiste un record appropriato su CAC
|
||||||
|
{
|
||||||
|
const TRectype& cac = categoria();
|
||||||
|
if (!cac.empty())
|
||||||
|
pcac = &cac;
|
||||||
|
else
|
||||||
|
scelte = 1; // Non trovato: usa direttamente AMMCE
|
||||||
|
}
|
||||||
|
if (scelte != 1) // L'utente non ha fatto una esplicita scelta per cespite!
|
||||||
|
{
|
||||||
|
const TTipo_cespite tc = tipo();
|
||||||
|
switch (fld)
|
||||||
|
{
|
||||||
|
case 0: // AMMRIT
|
||||||
|
case 1: // CSCEN
|
||||||
|
if (tc == tc_materiale && scelte == 2)
|
||||||
|
val = pcatdi->get(pstar);
|
||||||
|
break;
|
||||||
|
case 2: // PNOR
|
||||||
|
switch (tc)
|
||||||
|
{
|
||||||
|
case tc_materiale:
|
||||||
|
{
|
||||||
|
TDate dtfunz = get_date(CESPI_DTFUNZ);
|
||||||
|
if (!dtfunz.ok())
|
||||||
|
{
|
||||||
|
TDate dtdummy;
|
||||||
|
ditta_cespiti().esercizio_corrente(dtfunz, dtdummy);
|
||||||
|
}
|
||||||
|
const int anno_funz = dtfunz.year();
|
||||||
|
if (scelte == 2)
|
||||||
|
{
|
||||||
|
if (anno_funz < 1988)
|
||||||
|
val = catdi_get(pcatdi, CATDI_PFNORVN, _tipo_sit);
|
||||||
|
else
|
||||||
|
val = catdi_get(pcatdi, anno_funz < 1989 ? CATDI_PFNORVT : CATDI_PFNORNT, _tipo_sit);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
val = pcac->get(anno_funz < 1989 ? "R12" : "R11");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case tc_immateriale:
|
||||||
|
if (scelte == 2)
|
||||||
|
val = catdi_get(pcatdi, CATDI_PFNORVN, _tipo_sit);
|
||||||
|
else
|
||||||
|
val = pcac->get("R13");
|
||||||
|
break;
|
||||||
|
case tc_pluriennale:
|
||||||
|
if (scelte == 2)
|
||||||
|
val = catdi_get(pcatdi, CATDI_PFNORVN, _tipo_sit);
|
||||||
|
else
|
||||||
|
val = pcac->get("R15");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3: // PACC
|
||||||
|
if (tc == tc_materiale && scelte == 2)
|
||||||
|
val = catdi_get(pcatdi, CATDI_PFACC, _tipo_sit);
|
||||||
|
break;
|
||||||
|
case 4: // PANT
|
||||||
|
if (tc == tc_materiale && scelte == 2)
|
||||||
{
|
{
|
||||||
TDate dtfunz = get_date(CESPI_DTFUNZ);
|
TDate dtfunz = get_date(CESPI_DTFUNZ);
|
||||||
if (!dtfunz.ok())
|
if (!dtfunz.ok())
|
||||||
@ -955,59 +1077,19 @@ TString& TCespite::ammini_get(const char* pstar) const
|
|||||||
ditta_cespiti().esercizio_corrente(dtfunz, dtdummy);
|
ditta_cespiti().esercizio_corrente(dtfunz, dtdummy);
|
||||||
}
|
}
|
||||||
const int anno_funz = dtfunz.year();
|
const int anno_funz = dtfunz.year();
|
||||||
if (scelte == 2)
|
if (anno_funz < 1988)
|
||||||
{
|
val = catdi_get(pcatdi, CATDI_PFANTVN, _tipo_sit);
|
||||||
if (anno_funz < 1988)
|
|
||||||
_val = catdi_get(pcatdi, CATDI_PFNORVN, _tipo_sit);
|
|
||||||
else
|
|
||||||
_val = catdi_get(pcatdi, anno_funz < 1989 ? CATDI_PFNORVT : CATDI_PFNORNT, _tipo_sit);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
_val = pcac->get(anno_funz < 1989 ? "R12" : "R11");
|
val = catdi_get(pcatdi, anno_funz < 1989 ? CATDI_PFANTVT : CATDI_PFANTNT, _tipo_sit);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case tc_immateriale:
|
default:
|
||||||
if (scelte == 2)
|
CHECKS(0, "Unknown special field ", pstar);
|
||||||
_val = catdi_get(pcatdi, CATDI_PFNORVN, _tipo_sit);
|
|
||||||
else
|
|
||||||
_val = pcac->get("R13");
|
|
||||||
break;
|
break;
|
||||||
case tc_pluriennale:
|
|
||||||
if (scelte == 2)
|
|
||||||
_val = catdi_get(pcatdi, CATDI_PFNORVN, _tipo_sit);
|
|
||||||
else
|
|
||||||
_val = pcac->get("R15");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3: // PACC
|
|
||||||
if (tc == tc_materiale && scelte == 2)
|
|
||||||
_val = catdi_get(pcatdi, CATDI_PFACC, _tipo_sit);
|
|
||||||
break;
|
|
||||||
case 4: // PANT
|
|
||||||
if (tc == tc_materiale && scelte == 2)
|
|
||||||
{
|
|
||||||
TDate dtfunz = get_date(CESPI_DTFUNZ);
|
|
||||||
if (!dtfunz.ok())
|
|
||||||
{
|
|
||||||
TDate dtdummy;
|
|
||||||
ditta_cespiti().esercizio_corrente(dtfunz, dtdummy);
|
|
||||||
}
|
|
||||||
const int anno_funz = dtfunz.year();
|
|
||||||
if (anno_funz < 1988)
|
|
||||||
_val = catdi_get(pcatdi, CATDI_PFANTVN, _tipo_sit);
|
|
||||||
else
|
|
||||||
_val = catdi_get(pcatdi, anno_funz < 1989 ? CATDI_PFANTVT : CATDI_PFANTNT, _tipo_sit);
|
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default:
|
|
||||||
CHECKS(0, "Unknown special field ", pstar);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return _val;
|
return get_tmp_string() = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TCespite::ammini_get_bool(const char* pfield) const
|
bool TCespite::ammini_get_bool(const char* pfield) const
|
||||||
@ -1049,11 +1131,11 @@ void TCespite::calc_perc(TRelation& rel, const TRectype& tmv, const TRectype& tm
|
|||||||
if (resamm < ammmv.get_real(AMMMV_QNOR))
|
if (resamm < ammmv.get_real(AMMMV_QNOR))
|
||||||
{
|
{
|
||||||
ammmv.put(AMMMV_QNOR, resamm);
|
ammmv.put(AMMMV_QNOR, resamm);
|
||||||
penor = resamm / coeff * 100.0 / mov_val_amm(tmv);
|
penor = resamm / coeff * CENTO / mov_val_amm(tmv);
|
||||||
}
|
}
|
||||||
else //caso per le forzature
|
else //caso per le forzature
|
||||||
{
|
{
|
||||||
penor = ammmv.get_real(AMMMV_QNOR) / coeff * 100.0 / mov_val_amm(tmv);
|
penor = ammmv.get_real(AMMMV_QNOR) / coeff * CENTO / mov_val_amm(tmv);
|
||||||
}
|
}
|
||||||
ammmv.put(AMMMV_PENOR, penor);
|
ammmv.put(AMMMV_PENOR, penor);
|
||||||
ammmv.put(AMMMV_PNOR, penor); // Per chiarezza di stampa
|
ammmv.put(AMMMV_PNOR, penor); // Per chiarezza di stampa
|
||||||
@ -1064,11 +1146,11 @@ void TCespite::calc_perc(TRelation& rel, const TRectype& tmv, const TRectype& tm
|
|||||||
if (resamm < ammmv.get_real(AMMMV_QACC))
|
if (resamm < ammmv.get_real(AMMMV_QACC))
|
||||||
{
|
{
|
||||||
ammmv.put(AMMMV_QACC, resamm);
|
ammmv.put(AMMMV_QACC, resamm);
|
||||||
peacc = resamm / coeff * 100.0 / mov_val_amm(tmv);
|
peacc = resamm / coeff * CENTO / mov_val_amm(tmv);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
peacc = ammmv.get_real(AMMMV_QACC) / coeff * 100.0 / mov_val_amm(tmv);
|
peacc = ammmv.get_real(AMMMV_QACC) / coeff * CENTO / mov_val_amm(tmv);
|
||||||
}
|
}
|
||||||
ammmv.put(AMMMV_PEACC, peacc);
|
ammmv.put(AMMMV_PEACC, peacc);
|
||||||
ammmv.put(AMMMV_PACC, peacc); // Per chiarezza di stampa
|
ammmv.put(AMMMV_PACC, peacc); // Per chiarezza di stampa
|
||||||
@ -1084,12 +1166,12 @@ void TCespite::calc_perc(TRelation& rel, const TRectype& tmv, const TRectype& tm
|
|||||||
if (resamm < ammmv.get_real(AMMMV_QANT))
|
if (resamm < ammmv.get_real(AMMMV_QANT))
|
||||||
{
|
{
|
||||||
ammmv.put(AMMMV_QANT, resamm);
|
ammmv.put(AMMMV_QANT, resamm);
|
||||||
peant = resamm / coeff * 100.0 / mov_val_amm(tmv);
|
peant = resamm / coeff * CENTO / mov_val_amm(tmv);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
peant = ammmv.get_real(AMMMV_QANT) / coeff * 100.0 / mov_val_amm(tmv);
|
peant = ammmv.get_real(AMMMV_QANT) / coeff * CENTO / mov_val_amm(tmv);
|
||||||
}
|
}
|
||||||
ammmv.put(AMMMV_PEANT, peant);
|
ammmv.put(AMMMV_PEANT, peant);
|
||||||
ammmv.put(AMMMV_PANT, peant); // Per chiarezza di stampa
|
ammmv.put(AMMMV_PANT, peant); // Per chiarezza di stampa
|
||||||
@ -1160,7 +1242,7 @@ void TCespite::calc_perc(TRelation& rel, const TRectype& tmv, const TRectype& tm
|
|||||||
const real mva = mov_val_amm(tmv) / numele;
|
const real mva = mov_val_amm(tmv) / numele;
|
||||||
if (ammini_get_bool(AMMCE_CSCEN) && mva < un_milione())
|
if (ammini_get_bool(AMMCE_CSCEN) && mva < un_milione())
|
||||||
{
|
{
|
||||||
ammmv.put(AMMMV_PENOR, "100");
|
ammmv.put(AMMMV_PENOR, CENTO);
|
||||||
ammmv.zero(AMMMV_PEANT);
|
ammmv.zero(AMMMV_PEANT);
|
||||||
ammmv.zero(AMMMV_PEACC);
|
ammmv.zero(AMMMV_PEACC);
|
||||||
}
|
}
|
||||||
@ -1280,7 +1362,7 @@ void TCespite::calc_anni(TRectype& ammmv, const TRectype& tmv, const TRectype& t
|
|||||||
qnor = resamm;
|
qnor = resamm;
|
||||||
ammmv.put(AMMMV_QNOR, qnor);
|
ammmv.put(AMMMV_QNOR, qnor);
|
||||||
}
|
}
|
||||||
const real penor = qnor * 100.0 / mov_val_amm(tmv);
|
const real penor = qnor * CENTO / mov_val_amm(tmv);
|
||||||
ammmv.put(AMMMV_PENOR, penor);
|
ammmv.put(AMMMV_PENOR, penor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1324,12 +1406,12 @@ real TCespite::mov_r91_escl_ven(const TRectype& tmv)
|
|||||||
real TCespite::mov_val_ven(const TRectype& tmv)
|
real TCespite::mov_val_ven(const TRectype& tmv)
|
||||||
{
|
{
|
||||||
real val = sum_fields(tmv, MOVCE_CSTO, MOVCE_RIV75, MOVCE_RIV83, MOVCE_RIV90, MOVCE_RIV91);
|
real val = sum_fields(tmv, MOVCE_CSTO, MOVCE_RIV75, MOVCE_RIV83, MOVCE_RIV90, MOVCE_RIV91);
|
||||||
// val -= sum_fields(tmv, MOVCE_VNONAMM, MOVCE_PLUSREIN);
|
|
||||||
val -= tmv.get_real(MOVCE_PLUSREIN);
|
val -= tmv.get_real(MOVCE_PLUSREIN);
|
||||||
|
|
||||||
if (_tipo_sit == 1 || get_bool(CESPI_LEASING))
|
const bool leasing = get_bool(CESPI_LEASING);
|
||||||
val += tmv.get_real(SALCE_RIVGF);
|
if (_tipo_sit == 1 || leasing)
|
||||||
if (_tipo_sit == 2 && !get_bool(CESPI_LEASING))
|
val += tmv.get_real(SALCE_RIVGF); else
|
||||||
|
if (_tipo_sit == 2 && !leasing)
|
||||||
val += tmv.get_real(SALCE_RIVGC);
|
val += tmv.get_real(SALCE_RIVGC);
|
||||||
|
|
||||||
val -= mov_r90_escl_ven(tmv);
|
val -= mov_r90_escl_ven(tmv);
|
||||||
@ -1491,6 +1573,55 @@ void TCespite::scansione_movimenti(const TDate& data_limite, bool is_valid)
|
|||||||
} // If esistono movimenti
|
} // If esistono movimenti
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TCespite::controllo_fringe_benefit()
|
||||||
|
{
|
||||||
|
const real fringe_benefit = ammini_get_real(AMMCE_FRINGEBEN);
|
||||||
|
if (fringe_benefit <= ZERO)
|
||||||
|
return false; // Niente fringe benefit: inutile continuare!
|
||||||
|
|
||||||
|
// SOLO situazione fiscale di veicoli in uso a dipendenti dal 2006
|
||||||
|
if (_tipo_sit != 1 || !get_bool(CESPI_VEIDIP) || !auto_o_moto() ||
|
||||||
|
!ditta_cespiti().legge_223_06())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
const real quote = sum_fields(_ammpro, AMMCE_QNOR, AMMCE_QACC, AMMCE_QANT);
|
||||||
|
if (quote > fringe_benefit)
|
||||||
|
{
|
||||||
|
log(TR("- Aggiornamento quote in base al fringe benefit"));
|
||||||
|
|
||||||
|
const char* const qfld[3] = { AMMCE_QNOR, AMMCE_QACC, AMMCE_QANT };
|
||||||
|
const char* const pfld[3] = { AMMCE_PNOR, AMMCE_PACC, AMMCE_PANT };
|
||||||
|
real sforamento = quote - fringe_benefit;
|
||||||
|
_ammpro.add(AMMCE_QPERSE, sforamento); // Incremento le quote perse
|
||||||
|
for (int i = 2; i >= 0 && sforamento > ZERO; i--)
|
||||||
|
{
|
||||||
|
const real old_quota = _ammpro.get_real(qfld[i]);
|
||||||
|
if (old_quota > ZERO) // C'e' trippa per gatti in questa quota?
|
||||||
|
{
|
||||||
|
real new_quota; // Nuova quota ridotta per coprire lo sforamento
|
||||||
|
if (old_quota >= sforamento)
|
||||||
|
{
|
||||||
|
new_quota = old_quota - sforamento;
|
||||||
|
sforamento = ZERO;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
new_quota = ZERO;
|
||||||
|
sforamento -= old_quota;
|
||||||
|
}
|
||||||
|
_ammpro.put(qfld[i], new_quota); // Aggiorno la quota
|
||||||
|
|
||||||
|
// Ricalcolo anche la percentuale di conseguenza
|
||||||
|
const real old_perc = _ammpro.get_real(pfld[i]);
|
||||||
|
const real new_perc = old_perc * new_quota / old_quota;
|
||||||
|
ammpro_put_perc(pfld[i], new_perc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void TCespite::calc_amm_residui(bool is_valid)
|
void TCespite::calc_amm_residui(bool is_valid)
|
||||||
{
|
{
|
||||||
log("- Calcolo ammortamenti residui");
|
log("- Calcolo ammortamenti residui");
|
||||||
@ -1540,7 +1671,7 @@ void TCespite::calc_amm_residui(bool is_valid)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
zero_fields(_ammpro, AMMCE_QANT, AMMCE_PANT, AMMCE_QACC, AMMCE_PACC, NULL);
|
zero_fields(_ammpro, AMMCE_QACC, AMMCE_PACC, NULL);
|
||||||
}
|
}
|
||||||
if (resamm > ZERO)
|
if (resamm > ZERO)
|
||||||
{
|
{
|
||||||
@ -1630,7 +1761,7 @@ void TCespite::calc_amm_residui(bool is_valid)
|
|||||||
}
|
}
|
||||||
if (ammini_get_bool(AMMCE_CSCEN) && vam < un_milione())
|
if (ammini_get_bool(AMMCE_CSCEN) && vam < un_milione())
|
||||||
{
|
{
|
||||||
_ammpro.put(AMMCE_PNOR, "100");
|
_ammpro.put(AMMCE_PNOR, CENTO);
|
||||||
_ammpro.zero(AMMCE_PANT); _ammpro.zero(AMMCE_PACC);
|
_ammpro.zero(AMMCE_PANT); _ammpro.zero(AMMCE_PACC);
|
||||||
_ammpro.put(AMMCE_MSG04, "X"); // Ammortamento totale
|
_ammpro.put(AMMCE_MSG04, "X"); // Ammortamento totale
|
||||||
}
|
}
|
||||||
@ -1666,7 +1797,7 @@ void TCespite::calc_amm_residui(bool is_valid)
|
|||||||
real per_eff;
|
real per_eff;
|
||||||
const real qnor = calc_quota(valamm, pnor, resamm, per_eff);
|
const real qnor = calc_quota(valamm, pnor, resamm, per_eff);
|
||||||
_ammpro.put(AMMCE_QNOR, qnor);
|
_ammpro.put(AMMCE_QNOR, qnor);
|
||||||
_ammpro.put(AMMCE_PNOR, per_eff);
|
ammpro_put_perc(AMMCE_PNOR, per_eff);
|
||||||
|
|
||||||
const real quote_perse = calc_quote_perse(valamm, pmat, resamm, qnor, false, TDate());
|
const real quote_perse = calc_quote_perse(valamm, pmat, resamm, qnor, false, TDate());
|
||||||
_ammpro.put(AMMCE_QPERSE, quote_perse);
|
_ammpro.put(AMMCE_QPERSE, quote_perse);
|
||||||
@ -1777,6 +1908,10 @@ void TCespite::calc_amm_residui(bool is_valid)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Controlli preliminari per evitare un inutile calcolo del fringe benefit
|
||||||
|
if (is_valid && _tipo_sit == 1 && tc == tc_materiale && !leasing)
|
||||||
|
controllo_fringe_benefit();
|
||||||
|
|
||||||
save_amm();
|
save_amm();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1784,15 +1919,15 @@ void TCespite::agg_spe_man(bool is_valid)
|
|||||||
{
|
{
|
||||||
if (_tipo_sit != 1 || !is_valid || tipo() != tc_materiale)
|
if (_tipo_sit != 1 || !is_valid || tipo() != tc_materiale)
|
||||||
return;
|
return;
|
||||||
log(TR("- Aggiornamento spese di manutenzione"));
|
|
||||||
|
|
||||||
const real vspmanu = _salpro.get(SALCE_VSPMANU);
|
const real vspmanu = _salpro.get(SALCE_VSPMANU);
|
||||||
if (vspmanu > ZERO)
|
if (vspmanu > ZERO)
|
||||||
{
|
{
|
||||||
|
log(TR("- Aggiornamento spese di manutenzione"));
|
||||||
TDitta_cespiti& cce = ditta_cespiti();
|
TDitta_cespiti& cce = ditta_cespiti();
|
||||||
const char* field = NULL; // Nome del campo da incrementare
|
††††const int tpspeman = get_int(CESPI_TPSPEMAN);
|
||||||
|
|
||||||
const int tpspeman = get_int(CESPI_TPSPEMAN);
|
const char* field = NULL; // Nome del campo da incrementare
|
||||||
if (tpspeman == 2 || (tpspeman == 4 && !cce.esente_art14()))
|
if (tpspeman == 2 || (tpspeman == 4 && !cce.esente_art14()))
|
||||||
field = "R2"; else
|
field = "R2"; else
|
||||||
if (tpspeman == 3)
|
if (tpspeman == 3)
|
||||||
@ -1839,10 +1974,8 @@ bool TCespite::calc_amm(int tipo_sit, const TDate& data_limite, bool recalc_spe_
|
|||||||
log(FR("* Inizio calcolo situazione %d cespite %s"), tipo_sit, (const char*)idcespite);
|
log(FR("* Inizio calcolo situazione %d cespite %s"), tipo_sit, (const char*)idcespite);
|
||||||
|
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
if (tipo_sit == 1 && atol(idcespite) == 1L)
|
if (tipo_sit == 1 && atol(idcespite) == 89L)
|
||||||
{
|
|
||||||
tipo_sit = 1; // Put your breakpoint here
|
tipo_sit = 1; // Put your breakpoint here
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const bool is_valid = valido();
|
const bool is_valid = valido();
|
||||||
@ -1875,7 +2008,17 @@ void TCespite::load_saldi(const int tiposit, const int esercizio)
|
|||||||
TLocalisamfile salce(LF_SALCE);
|
TLocalisamfile salce(LF_SALCE);
|
||||||
fill_sal_key(salce.curr(), esercizio, 1);
|
fill_sal_key(salce.curr(), esercizio, 1);
|
||||||
if (salce.read() == NOERR)
|
if (salce.read() == NOERR)
|
||||||
|
{
|
||||||
_salini = salce.curr();
|
_salini = salce.curr();
|
||||||
|
|
||||||
|
// Il campo VNONAMMC nasce solo nel 2006, prima era da intendersi uguale a VNONAMM
|
||||||
|
if (!_salini.get_real(SALCE_VNONAMM).is_zero() &&
|
||||||
|
_salini.get_real(SALCE_VNONAMMC).is_zero())
|
||||||
|
{
|
||||||
|
if (esercizio <= 2006) // Uso improprio dell'esercizio come anno solare
|
||||||
|
_salini.put(SALCE_VNONAMMC, _salini.get(SALCE_VNONAMM));
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
_salini.zero();
|
_salini.zero();
|
||||||
|
|
||||||
@ -1899,6 +2042,7 @@ void TCespite::load_saldi(const int tiposit, const int esercizio)
|
|||||||
_ammpro = _ammini;
|
_ammpro = _ammini;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TCespite::TCespite()
|
TCespite::TCespite()
|
||||||
: TRectype(LF_CESPI), _salini(LF_SALCE), _salpro(LF_SALCE), _ammini(LF_AMMCE), _ammpro(LF_AMMCE)
|
: TRectype(LF_CESPI), _salini(LF_SALCE), _salpro(LF_SALCE), _ammini(LF_AMMCE), _ammpro(LF_AMMCE)
|
||||||
{
|
{
|
||||||
|
15
ce/ce2101.h
15
ce/ce2101.h
@ -5,7 +5,9 @@
|
|||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum TTipo_cespite { tc_materiale, tc_immateriale, tc_pluriennale };
|
enum TTipo_cespite { tc_materiale, tc_immateriale, tc_pluriennale };
|
||||||
|
enum TTipoFabbricato { tf_nessuno, tf_industriale, tf_altro };
|
||||||
|
enum TTipoVeicolo { tv_nessuno, tv_automobile, tv_motociclo, tv_ciclomotore, tv_altro };
|
||||||
|
|
||||||
class TCespite : public TRectype
|
class TCespite : public TRectype
|
||||||
{
|
{
|
||||||
@ -39,7 +41,7 @@ protected:
|
|||||||
void rip_costo(TRelation& rel, int mode);
|
void rip_costo(TRelation& rel, int mode);
|
||||||
int test_rip(TRelation& rel);
|
int test_rip(TRelation& rel);
|
||||||
|
|
||||||
TString& ammini_get(const char* pstar) const;
|
const TString& ammini_get(const char* pstar) const;
|
||||||
bool ammini_get_bool(const char* pstar) const;
|
bool ammini_get_bool(const char* pstar) const;
|
||||||
real ammini_get_real(const char* pstar) const;
|
real ammini_get_real(const char* pstar) const;
|
||||||
void ammpro_put_perc(const char* pfield, const real& p);
|
void ammpro_put_perc(const char* pfield, const real& p);
|
||||||
@ -60,17 +62,26 @@ protected:
|
|||||||
void agg_quota(const real& valamm, TRectype& rec, const char* field, bool calcq);
|
void agg_quota(const real& valamm, TRectype& rec, const char* field, bool calcq);
|
||||||
|
|
||||||
void incr_field(TRectype& dst, const char* fdst, const TRectype& src, const char* fsrc, char segno) const;
|
void incr_field(TRectype& dst, const char* fdst, const TRectype& src, const char* fsrc, char segno) const;
|
||||||
|
void decr_field(TRectype& dst, const char* fdst, const TRectype& src, const char* fsrc, char segno) const;
|
||||||
|
|
||||||
void applica_rettifiche(TRectype& tmv, TRectype& tmvam);
|
void applica_rettifiche(TRectype& tmv, TRectype& tmvam);
|
||||||
void aggiorna_salpro(const TRectype& tmv, const TRectype& tmvam, char segno);
|
void aggiorna_salpro(const TRectype& tmv, const TRectype& tmvam, char segno);
|
||||||
void scansione_movimenti(const TDate& data_limite, bool is_valid);
|
void scansione_movimenti(const TDate& data_limite, bool is_valid);
|
||||||
void calc_amm_residui(bool is_valid);
|
void calc_amm_residui(bool is_valid);
|
||||||
void agg_spe_man(bool is_valid);
|
void agg_spe_man(bool is_valid);
|
||||||
|
real percentuale_deducibilita() const;
|
||||||
|
bool controllo_fringe_benefit();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool calc_amm(int tipo_sit, const TDate& data_limite, bool calc_spe_man = FALSE);
|
bool calc_amm(int tipo_sit, const TDate& data_limite, bool calc_spe_man = FALSE);
|
||||||
|
|
||||||
const TRectype& categoria() const;
|
const TRectype& categoria() const;
|
||||||
TTipo_cespite tipo() const;
|
TTipo_cespite tipo() const;
|
||||||
|
TTipoFabbricato fabbricato() const;
|
||||||
|
|
||||||
|
TTipoVeicolo veicolo() const;
|
||||||
|
bool auto_o_moto() const;
|
||||||
|
|
||||||
const TRectype& sal_ini() const { return _salini; }
|
const TRectype& sal_ini() const { return _salini; }
|
||||||
const TRectype& sal_pro() const { return _salpro; }
|
const TRectype& sal_pro() const { return _salpro; }
|
||||||
const TRectype& amm_ini() const { return _ammini; }
|
const TRectype& amm_ini() const { return _ammini; }
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <relation.h>
|
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
|
|
||||||
#include "celib.h"
|
#include "celib.h"
|
||||||
|
@ -21,7 +21,7 @@ protected:
|
|||||||
virtual void get_row(long n, TToken_string& row);
|
virtual void get_row(long n, TToken_string& row);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TCollces_sheet(TCursor* cursor, TEdit_field* ef, TToken_string& sibling);
|
TCollces_sheet(TCursor* cursor, TEdit_field& ef);
|
||||||
};
|
};
|
||||||
|
|
||||||
void TCollces_sheet::get_row(long n, TToken_string& row)
|
void TCollces_sheet::get_row(long n, TToken_string& row)
|
||||||
@ -40,9 +40,9 @@ void TCollces_sheet::get_row(long n, TToken_string& row)
|
|||||||
row.add(desc, 3);
|
row.add(desc, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
TCollces_sheet::TCollces_sheet(TCursor* cursor, TEdit_field* ef, TToken_string& sibling)
|
TCollces_sheet::TCollces_sheet(TCursor* cursor, TEdit_field& ef)
|
||||||
: TBrowse_sheet(cursor, "CODGRUPPO|CODSPECIE|CODCAT|CODCAT", TR("Categorie"),
|
: TBrowse_sheet(cursor, "CODGRUPPO|CODSPECIE|CODCAT|CODCAT", TR("Categorie"),
|
||||||
HR("Gruppo|Specie|Categoria|Descrizione@70"), 0, ef, sibling)
|
HR("Gruppo|Specie|Categoria|Descrizione@70"), 0, ef, TToken_string())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,8 +70,7 @@ bool TCesp2cg_qmask::on_field_event(TOperable_field& o, TField_event e, long jol
|
|||||||
if (e == fe_button)
|
if (e == fe_button)
|
||||||
{
|
{
|
||||||
TEdit_field& ef = (TEdit_field&)o;
|
TEdit_field& ef = (TEdit_field&)o;
|
||||||
TToken_string sibling;
|
TCollces_sheet sht(_curcoll, ef);
|
||||||
TCollces_sheet sht(_curcoll, &ef, sibling);
|
|
||||||
if (!o.empty())
|
if (!o.empty())
|
||||||
{
|
{
|
||||||
TRectype& rec = _curcoll->curr();
|
TRectype& rec = _curcoll->curr();
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <relation.h>
|
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
|
|
||||||
#include "ce2500a.h"
|
#include "ce2500a.h"
|
||||||
@ -162,10 +161,9 @@ void TRestore_boll::main_loop()
|
|||||||
|
|
||||||
bool ok = TRUE;
|
bool ok = TRUE;
|
||||||
if (dc.bollato_stampato())
|
if (dc.bollato_stampato())
|
||||||
ok = yesno_box(TR("Si desidera veramente ripristinare la stampa bollato:\n"
|
ok = yesno_box(TR("Si desidera veramente ripristinare il bollato dell'attivita'"));
|
||||||
"dell' attivita' selezionata ?"));
|
|
||||||
else
|
else
|
||||||
ok = warning_box(TR("Il bollato dell' attivita' selezionata non risulta stampato"));
|
ok = warning_box(TR("Il bollato dell'attivita' non risulta stampato"));
|
||||||
|
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
#include <execp.h>
|
#include <execp.h>
|
||||||
#include <form.h>
|
|
||||||
#include <printer.h>
|
#include <printer.h>
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
@ -97,7 +96,7 @@ class TRegistro_cespiti : public TSkeleton_application
|
|||||||
int _tipoamm;
|
int _tipoamm;
|
||||||
bool _bollato;
|
bool _bollato;
|
||||||
TEsercizi_contabili _esc;
|
TEsercizi_contabili _esc;
|
||||||
TString _idspese5, _idspese25;
|
TString16 _idspese5, _idspese25;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool create();
|
virtual bool create();
|
||||||
@ -389,8 +388,8 @@ void TRegistro_cespiti::costruisci_cespite(int cat, const real& spese)
|
|||||||
|
|
||||||
// Calcola ammortamenti per cespite (creando anche salce 2 e i 6 ammce)
|
// Calcola ammortamenti per cespite (creando anche salce 2 e i 6 ammce)
|
||||||
TCespite ces(idcespite);
|
TCespite ces(idcespite);
|
||||||
for (int i = 1; i <= 3; i++)
|
for (int sit = 1; sit <= 3; sit++)
|
||||||
ces.calc_amm(i, datafine);
|
ces.calc_amm(sit, datafine);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TRegistro_cespiti::crea_cespite_man()
|
void TRegistro_cespiti::crea_cespite_man()
|
||||||
|
144
ce/ce3100.h
144
ce/ce3100.h
@ -21,75 +21,87 @@
|
|||||||
#define FR_CAT 21
|
#define FR_CAT 21
|
||||||
#define FR_D_CAT 22
|
#define FR_D_CAT 22
|
||||||
|
|
||||||
|
//Saldi Iniziali
|
||||||
#define FR_SI_CSTO 31
|
#define FR_SI_CSTO 31
|
||||||
#define FR_SI_VNONAMM 32
|
#define FR_SI_VNONAMMF 32
|
||||||
#define FR_SI_TOTRIV 33
|
#define FR_SI_VNONAMMC 33
|
||||||
#define FR_SI_VALAMM 34
|
#define FR_SI_VNONAMM06 34
|
||||||
#define FR_SI_RIVGF 35
|
#define FR_SI_TOTRIV 35
|
||||||
#define FR_SI_RIVGC 36
|
#define FR_SI_VALAMM 36
|
||||||
|
#define FR_SI_RIVGF 37
|
||||||
|
#define FR_SI_RIVGC 38
|
||||||
|
#define FR_SI_VNONAMM 39
|
||||||
|
|
||||||
#define FR_MV_SEGNO 41
|
//MoVimenti
|
||||||
#define FR_MV_NUMELE 42
|
#define FR_MV_SEGNO 41
|
||||||
#define FR_MV_CSTO 43
|
#define FR_MV_NUMELE 42
|
||||||
#define FR_MV_VNONAMM 44
|
#define FR_MV_CSTO 43
|
||||||
#define FR_MV_IMPVEN 45
|
#define FR_MV_VNONAMMF 44
|
||||||
#define FR_MV_IMPVEN_S 64
|
#define FR_MV_VNONAMMC 45
|
||||||
#define FR_MV_RIVGF 46
|
#define FR_MV_VNONAMM06 46
|
||||||
#define FR_MV_RIVGC 47
|
#define FR_MV_IMPVEN 47
|
||||||
#define FR_MV_TOTRIV 48
|
#define FR_MV_IMPVEN_S 48
|
||||||
#define FR_MV_VALAMM 49
|
#define FR_MV_RIVGF 49
|
||||||
#define FR_MV_RESAMM 50
|
#define FR_MV_RIVGC 50
|
||||||
#define FR_MV_PLUSREIN 51
|
#define FR_MV_TOTRIV 51
|
||||||
#define FR_MV_FONDOAMM 52
|
#define FR_MV_VNONAMM 52
|
||||||
#define FR_MV_QNONAMM 53
|
#define FR_MV_VALAMM 53
|
||||||
#define FR_MV_QNOR 54
|
#define FR_MV_RESAMM 54
|
||||||
#define FR_MV_QACC 55
|
#define FR_MV_PLUSREIN 55
|
||||||
#define FR_MV_QANT 56
|
#define FR_MV_FONDOAMM 56
|
||||||
#define FR_MV_QNONAMM4 64
|
#define FR_MV_QNONAMM 57
|
||||||
#define FR_MV_QNONAMM4_SEGNO 65
|
#define FR_MV_QNOR 58
|
||||||
#define FR_MV_TOTFONDOAMM 57
|
#define FR_MV_QACC 59
|
||||||
#define FR_MV_QNOR_SEGNO 58
|
#define FR_MV_QANT 60
|
||||||
#define FR_MV_QACC_SEGNO 59
|
#define FR_MV_QNONAMM4 61
|
||||||
#define FR_MV_QANT_SEGNO 60
|
#define FR_MV_QNONAMM4_SEGNO 62
|
||||||
#define FR_MV_MINUSVALENZA 61
|
#define FR_MV_TOTFONDOAMM 63
|
||||||
#define FR_MV_PLUSVALENZA 62
|
#define FR_MV_QNOR_SEGNO 64
|
||||||
#define FR_MV_VALAMM_SEGNO 63
|
#define FR_MV_QACC_SEGNO 65
|
||||||
|
#define FR_MV_QANT_SEGNO 66
|
||||||
|
#define FR_MV_MINUSVALENZA 67
|
||||||
|
#define FR_MV_PLUSVALENZA 68
|
||||||
|
#define FR_MV_VALAMM_SEGNO 69
|
||||||
|
|
||||||
#define FR_FE_NUMELE 71
|
//Rettifiche
|
||||||
#define FR_FE_CSTO 72
|
#define FR_FE_NUMELE 71
|
||||||
#define FR_FE_VNONAMM 73
|
#define FR_FE_CSTO 72
|
||||||
#define FR_FE_RIVGF 74
|
#define FR_FE_VNONAMMF 73
|
||||||
#define FR_FE_RIVGC 75
|
#define FR_FE_VNONAMMC 74
|
||||||
#define FR_FE_TOTRIV 76
|
#define FR_FE_VNONAMM06 75
|
||||||
#define FR_FE_VALAMM 77
|
#define FR_FE_RIVGF 76
|
||||||
#define FR_FE_RESAMM 78
|
#define FR_FE_RIVGC 77
|
||||||
#define FR_FE_PLUSREIN 79
|
#define FR_FE_TOTRIV 78
|
||||||
#define FR_FE_FONDOAMM 80
|
#define FR_FE_VNONAMM 79
|
||||||
#define FR_FE_QNONAMM 81
|
#define FR_FE_VALAMM 80
|
||||||
#define FR_FE_VSPMANU 82
|
#define FR_FE_RESAMM 81
|
||||||
#define FR_FE_PNOR 83
|
#define FR_FE_PLUSREIN 82
|
||||||
#define FR_FE_PACC 84
|
#define FR_FE_FONDOAMM 83
|
||||||
#define FR_FE_PANT 85
|
#define FR_FE_QNONAMM 84
|
||||||
#define FR_FE_QNOR 86
|
#define FR_FE_VSPMANU 85
|
||||||
#define FR_FE_FPRIVATO1 87
|
#define FR_FE_PNOR 86
|
||||||
#define FR_FE_QACC 88
|
#define FR_FE_PACC 87
|
||||||
#define FR_FE_FPRIVATO2 89
|
#define FR_FE_PANT 88
|
||||||
#define FR_FE_QANT 90
|
#define FR_FE_QNOR 89
|
||||||
#define FR_FE_FPRIVATO3 91
|
#define FR_FE_FPRIVATO1 90
|
||||||
#define FR_FE_MSG1 92
|
#define FR_FE_QACC 91
|
||||||
#define FR_FE_MSG2 93
|
#define FR_FE_FPRIVATO2 92
|
||||||
#define FR_FE_MSG3 94
|
#define FR_FE_QANT 93
|
||||||
#define FR_FE_MSG4 95
|
#define FR_FE_FPRIVATO3 94
|
||||||
#define FR_FE_MSG5 96
|
#define FR_FE_MSG1 95
|
||||||
#define FR_FE_MSG6 97
|
#define FR_FE_MSG2 96
|
||||||
#define FR_VB_FONDOAMM 98
|
#define FR_FE_MSG3 97
|
||||||
#define FR_VB_QNONAMM 99
|
#define FR_FE_MSG4 98
|
||||||
#define FR_AE_NORMALE 100
|
#define FR_FE_MSG5 99
|
||||||
#define FR_AE_ACCELERATO 101
|
#define FR_FE_MSG6 100
|
||||||
#define FR_AE_ANTICIPATO 102
|
#define FR_VB_FONDOAMM 101
|
||||||
#define FR_AR_NORMALE 103
|
#define FR_VB_QNONAMM 102
|
||||||
#define FR_AR_ACCELERATO 104
|
#define FR_AE_NORMALE 103
|
||||||
#define FR_AR_ANTICIPATO 105
|
#define FR_AE_ACCELERATO 104
|
||||||
|
#define FR_AE_ANTICIPATO 105
|
||||||
|
#define FR_AR_NORMALE 106
|
||||||
|
#define FR_AR_ACCELERATO 107
|
||||||
|
#define FR_AR_ANTICIPATO 108
|
||||||
|
|
||||||
#define FR_TC_ELEM 111
|
#define FR_TC_ELEM 111
|
||||||
#define FR_TC_CSTO 112
|
#define FR_TC_CSTO 112
|
||||||
|
130
ce/ce3100a.frm
130
ce/ce3100a.frm
@ -360,14 +360,30 @@ SECTION HEADER LAST 3
|
|||||||
PICTURE "##.###.###.###.@@@"
|
PICTURE "##.###.###.###.@@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
VALUTA FR_SI_VNONAMM 18
|
VALUTA FR_SI_VNONAMMF 18
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "Parte n.amm"
|
KEY "Parte n.amm fiscale"
|
||||||
PROMPT 130 1 ""
|
PROMPT 130 1 ""
|
||||||
FIELD 102@->VNONAMM
|
FIELD 102@->VNONAMM
|
||||||
PICTURE "##.###.###.###.@@@"
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
VALUTA FR_SI_VNONAMMC 18
|
||||||
|
BEGIN
|
||||||
|
KEY "Parte n.amm civilistica"
|
||||||
|
PROMPT 130 1 ""
|
||||||
|
FIELD 102@->VNONAMMC
|
||||||
|
FLAGS "H"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
VALUTA FR_SI_VNONAMM06 18
|
||||||
|
BEGIN
|
||||||
|
KEY "Parte n.amm scorporo fabbricati"
|
||||||
|
PROMPT 130 1 ""
|
||||||
|
FIELD 102@->VNONAMM06
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
VALUTA FR_SI_RIVGF 18
|
VALUTA FR_SI_RIVGF 18
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "RIVGF"
|
KEY "RIVGF"
|
||||||
@ -392,13 +408,21 @@ SECTION HEADER LAST 3
|
|||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
PROMPT 0 0 ""
|
PROMPT 0 0 ""
|
||||||
ITEM "1|1"
|
ITEM "1|1"
|
||||||
MESSAGE RESET,FR_SI_RIVGC
|
MESSAGE RESET,FR_SI_RIVGC|RESET,FR_SI_VNONAMMC
|
||||||
ITEM "2|2"
|
ITEM "2|2"
|
||||||
MESSAGE RESET,FR_SI_RIVGF
|
MESSAGE RESET,FR_SI_RIVGF|RESET,FR_SI_VNONAMMF
|
||||||
ITEM "3|3"
|
ITEM "3|3"
|
||||||
MESSAGE RESET,FR_SI_RIVGF
|
MESSAGE RESET,FR_SI_RIVGF|RESET,FR_SI_VNONAMMF
|
||||||
FIELD 104@->TPAMM
|
FIELD 104@->TPAMM
|
||||||
END
|
END
|
||||||
|
|
||||||
|
VALUTA FR_SI_VNONAMM 18
|
||||||
|
BEGIN
|
||||||
|
KEY "Parte n.amm da far vedere"
|
||||||
|
PROMPT 130 1 ""
|
||||||
|
MESSAGE _NUMEXPR,#FR_SI_VNONAMMF+#FR_SI_VNONAMMC+#FR_SI_VNONAMM06
|
||||||
|
PICTURE "##.###.###.###.@@@"
|
||||||
|
END
|
||||||
|
|
||||||
VALUTA FR_SI_TOTRIV 18
|
VALUTA FR_SI_TOTRIV 18
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -507,15 +531,30 @@ SECTION BODY FIRST 9
|
|||||||
PICTURE "##.###.###.###.@@@"
|
PICTURE "##.###.###.###.@@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
VALUTA FR_MV_VNONAMM 18
|
VALUTA FR_MV_VNONAMMF 18
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "Parte n.amm"
|
KEY "Parte n.amm fiscale"
|
||||||
PROMPT 130 1 ""
|
PROMPT 130 1 ""
|
||||||
MESSAGE _NUMEXPR,105@->VNONAMM*#FR_MV_SEGNO
|
FIELD 105@->VNONAMM
|
||||||
MESSAGE ADD,BO->FR_MV_VNONAMM
|
FLAGS "H"
|
||||||
PICTURE "##.###.###.###.@@@"
|
END
|
||||||
|
|
||||||
|
VALUTA FR_MV_VNONAMMC 18
|
||||||
|
BEGIN
|
||||||
|
KEY "Parte n.amm civilistico"
|
||||||
|
PROMPT 130 1 ""
|
||||||
|
FIELD 105@->VNONAMMC
|
||||||
|
FLAGS "H"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
VALUTA FR_MV_VNONAMM06 18
|
||||||
|
BEGIN
|
||||||
|
KEY "Parte n.amm scorporo terreni"
|
||||||
|
PROMPT 130 1 ""
|
||||||
|
FIELD 105@->VNONAMM06
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGA -1 2
|
STRINGA -1 2
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "Tipo doc."
|
KEY "Tipo doc."
|
||||||
@ -580,13 +619,22 @@ SECTION BODY FIRST 9
|
|||||||
PROMPT 0 0 ""
|
PROMPT 0 0 ""
|
||||||
ITEM " | "
|
ITEM " | "
|
||||||
ITEM "1|1"
|
ITEM "1|1"
|
||||||
MESSAGE RESET,FR_MV_RIVGC
|
MESSAGE RESET,FR_MV_RIVGC|RESET,FR_MV_VNONAMMC
|
||||||
ITEM "2|2"
|
ITEM "2|2"
|
||||||
MESSAGE RESET,FR_MV_RIVGF
|
MESSAGE RESET,FR_MV_RIVGF|RESET,FR_MV_VNONAMMF
|
||||||
ITEM "3|3"
|
ITEM "3|3"
|
||||||
MESSAGE RESET,FR_MV_RIVGF
|
MESSAGE RESET,FR_MV_RIVGF|RESET,FR_MV_VNONAMMF
|
||||||
FIELD 106@->TPAMM
|
FIELD 106@->TPAMM
|
||||||
END
|
END
|
||||||
|
|
||||||
|
VALUTA FR_MV_VNONAMM 18
|
||||||
|
BEGIN
|
||||||
|
KEY "Valore non ammortizzabile da far vedere"
|
||||||
|
PROMPT 130 1 ""
|
||||||
|
MESSAGE _NUMEXPR,(#FR_MV_VNONAMMF+#FR_MV_VNONAMMC+#FR_MV_VNONAMM06)*#FR_MV_SEGNO
|
||||||
|
MESSAGE ADD,BO->FR_MV_VNONAMM
|
||||||
|
PICTURE "##.###.###.###.@@@"
|
||||||
|
END
|
||||||
|
|
||||||
VALUTA FR_MV_TOTRIV 18
|
VALUTA FR_MV_TOTRIV 18
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -601,7 +649,7 @@ SECTION BODY FIRST 9
|
|||||||
BEGIN
|
BEGIN
|
||||||
KEY "Valore da ammortizzare (con segno!!!)"
|
KEY "Valore da ammortizzare (con segno!!!)"
|
||||||
PROMPT 108 2 ""
|
PROMPT 108 2 ""
|
||||||
MESSAGE _NUMEXPR, #FR_MV_CSTO-#FR_MV_VNONAMM+#FR_MV_TOTRIV
|
MESSAGE _NUMEXPR,MAX(#FR_MV_CSTO-#FR_MV_VNONAMM+#FR_MV_TOTRIV;0)
|
||||||
MESSAGE ADD,BO->FR_MV_VALAMM
|
MESSAGE ADD,BO->FR_MV_VALAMM
|
||||||
PICTURE "##.###.###.###.@@@"
|
PICTURE "##.###.###.###.@@@"
|
||||||
END
|
END
|
||||||
@ -871,15 +919,7 @@ SECTION BODY ODD 3
|
|||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
PROMPT 106 3 ""
|
PROMPT 106 3 ""
|
||||||
PICTURE "##.###.###.###.@@@"
|
PICTURE "##.###.###.###.@@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
/* VALUTA FR_MV_QNONAMM4
|
|
||||||
BEGIN
|
|
||||||
KEY "Quota non + amm. (con segno!!); viene dalla riga 4 dei movimenti"
|
|
||||||
FLAGS "H"
|
|
||||||
PROMPT 126 3 ""
|
|
||||||
PICTURE "##.###.###.###.@@@"
|
|
||||||
END */
|
|
||||||
|
|
||||||
VALUTA FR_MV_FONDOAMM 18
|
VALUTA FR_MV_FONDOAMM 18
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -921,7 +961,6 @@ SECTION BODY ODD 3
|
|||||||
BEGIN
|
BEGIN
|
||||||
KEY "Totale plusvalenza reinvestita"
|
KEY "Totale plusvalenza reinvestita"
|
||||||
PROMPT 82 3 ""
|
PROMPT 82 3 ""
|
||||||
// MESSAGE _NUMEXPR,#FR_MV_PLUSREIN
|
|
||||||
PICTURE "##.###.###.###.@@@"
|
PICTURE "##.###.###.###.@@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -929,7 +968,6 @@ SECTION BODY ODD 3
|
|||||||
BEGIN
|
BEGIN
|
||||||
KEY "Totale quote non + ammortizzabili"
|
KEY "Totale quote non + ammortizzabili"
|
||||||
PROMPT 126 3 ""
|
PROMPT 126 3 ""
|
||||||
// MESSAGE _NUMEXPR,#FR_MV_QNONAMM
|
|
||||||
PICTURE "##.###.###.###.@@@"
|
PICTURE "##.###.###.###.@@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -979,12 +1017,28 @@ SECTION BODY EVEN 17
|
|||||||
PICTURE "##.###.###.###.@@@"
|
PICTURE "##.###.###.###.@@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
VALUTA FR_FE_VNONAMM 18
|
VALUTA FR_FE_VNONAMMF 18
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "Parte n.amm"
|
KEY "Parte n.amm fiscale"
|
||||||
PROMPT 130 1 ""
|
PROMPT 130 1 ""
|
||||||
FIELD 102@->VNONAMM
|
FIELD 102@->VNONAMM
|
||||||
PICTURE "##.###.###.###.@@@"
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
VALUTA FR_FE_VNONAMMC 18
|
||||||
|
BEGIN
|
||||||
|
KEY "Parte n.amm civilistica"
|
||||||
|
PROMPT 130 1 ""
|
||||||
|
FIELD 102@->VNONAMMC
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
VALUTA FR_FE_VNONAMM06 18
|
||||||
|
BEGIN
|
||||||
|
KEY "Parte n.amm scorporo fabbricati"
|
||||||
|
PROMPT 130 1 ""
|
||||||
|
FIELD 102@->VNONAMM06
|
||||||
|
FLAGS "H"
|
||||||
END
|
END
|
||||||
|
|
||||||
VALUTA FR_FE_RIVGF 18
|
VALUTA FR_FE_RIVGF 18
|
||||||
@ -1011,13 +1065,21 @@ SECTION BODY EVEN 17
|
|||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
PROMPT 0 0 ""
|
PROMPT 0 0 ""
|
||||||
ITEM "1|1"
|
ITEM "1|1"
|
||||||
MESSAGE RESET,FR_FE_RIVGC
|
MESSAGE RESET,FR_FE_RIVGC|RESET,FR_FE_VNONAMMC
|
||||||
ITEM "2|2"
|
ITEM "2|2"
|
||||||
MESSAGE RESET,FR_FE_RIVGF
|
MESSAGE RESET,FR_FE_RIVGF|RESET,FR_FE_VNONAMMF
|
||||||
ITEM "3|3"
|
ITEM "3|3"
|
||||||
MESSAGE RESET,FR_FE_RIVGF
|
MESSAGE RESET,FR_FE_RIVGF|RESET,FR_FE_VNONAMMF
|
||||||
FIELD 104@->TPAMM
|
FIELD 104@->TPAMM
|
||||||
END
|
END
|
||||||
|
|
||||||
|
VALUTA FR_FE_VNONAMM 18
|
||||||
|
BEGIN
|
||||||
|
KEY "Valore non ammortizzabile da far vedere"
|
||||||
|
PROMPT 130 1 ""
|
||||||
|
MESSAGE _NUMEXPR,#FR_FE_VNONAMMF+#FR_FE_VNONAMMC+#FR_FE_VNONAMM06
|
||||||
|
PICTURE "##.###.###.###.@@@"
|
||||||
|
END
|
||||||
|
|
||||||
VALUTA FR_FE_TOTRIV 18
|
VALUTA FR_FE_TOTRIV 18
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -1031,7 +1093,7 @@ SECTION BODY EVEN 17
|
|||||||
BEGIN
|
BEGIN
|
||||||
KEY "Valore da ammortizzare"
|
KEY "Valore da ammortizzare"
|
||||||
PROMPT 108 2 ""
|
PROMPT 108 2 ""
|
||||||
MESSAGE _NUMEXPR,#FR_FE_CSTO-#FR_FE_VNONAMM+#FR_FE_TOTRIV
|
MESSAGE _NUMEXPR,MAX(#FR_FE_CSTO-#FR_FE_VNONAMM+#FR_FE_TOTRIV;0)
|
||||||
PICTURE "##.###.###.###.@@@"
|
PICTURE "##.###.###.###.@@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -1206,7 +1268,7 @@ SECTION BODY EVEN 17
|
|||||||
STRINGA FR_FE_MSG1
|
STRINGA FR_FE_MSG1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "Messaggio 1"
|
KEY "Messaggio 1"
|
||||||
PROMPT 16 7 "Ammortamento ridotto a metá per 1º esercizio di utilizzo del cespite"
|
PROMPT 16 7 "Ammortamento ridotto al 50% nel primo esercizio di utilizzo"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRINGA FR_FE_MSG2
|
STRINGA FR_FE_MSG2
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#define FF_TOTAMMO 33
|
#define FF_TOTAMMO 33
|
||||||
#define FF_MINUS 35
|
#define FF_MINUS 35
|
||||||
#define FF_MINUSVEN 36
|
#define FF_MINUSVEN 36
|
||||||
|
#define FF_VNONAMM 37
|
||||||
|
|
||||||
#define FF_DATE 40
|
#define FF_DATE 40
|
||||||
#define FF_PAGE 41
|
#define FF_PAGE 41
|
||||||
|
@ -303,11 +303,18 @@ BEGIN
|
|||||||
MESSAGE ADD,F->FF_TOTELEM
|
MESSAGE ADD,F->FF_TOTELEM
|
||||||
END
|
END
|
||||||
|
|
||||||
|
VALUTA FF_VNONAMM 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 48 1 ""
|
||||||
|
MESSAGE _NUMEXPR,IF(LF_MOVAM->TPAMM=2;LF_MOVCE->VNONAMMC;LF_MOVCE->VNONAMM)+LF_MOVCE->VNONAMM06
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
VALUTA -1 15
|
VALUTA -1 15
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "valore"
|
KEY "valore"
|
||||||
PROMPT 50 1 ""
|
PROMPT 50 1 ""
|
||||||
MESSAGE _NUMEXPR,(LF_MOVCE->CSTO-LF_MOVCE->VNONAMM+LF_MOVCE->RIV75+LF_MOVCE->RIV83+LF_MOVCE->RIV90+LF_MOVCE->RIV91+LF_MOVCE->RIVGF)*#FF_SEGNO
|
MESSAGE _NUMEXPR,(LF_MOVCE->CSTO-#FF_VNONAMM+LF_MOVCE->RIV75+LF_MOVCE->RIV83+LF_MOVCE->RIV90+LF_MOVCE->RIV91+LF_MOVCE->RIVGF)*#FF_SEGNO
|
||||||
MESSAGE ADD,F->FF_TOTVALORE
|
MESSAGE ADD,F->FF_TOTVALORE
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -459,11 +466,18 @@ BEGIN
|
|||||||
MESSAGE ADD,F0->FF_TOTELEM
|
MESSAGE ADD,F0->FF_TOTELEM
|
||||||
END
|
END
|
||||||
|
|
||||||
|
VALUTA FF_VNONAMM 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 48 1 ""
|
||||||
|
MESSAGE _NUMEXPR,IF(LF_MOVAM->TPAMM=2;LF_MOVCE->VNONAMMC;LF_MOVCE->VNONAMM)+LF_MOVCE->VNONAMM06
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
VALUTA -1 15
|
VALUTA -1 15
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "valore"
|
KEY "valore"
|
||||||
PROMPT 50 1 ""
|
PROMPT 50 1 ""
|
||||||
MESSAGE _NUMEXPR, (LF_MOVCE->CSTO-LF_MOVCE->VNONAMM+LF_MOVCE->RIV75+LF_MOVCE->RIV83+LF_MOVCE->RIV90+LF_MOVCE->RIV91+LF_MOVCE->RIVGF)*#FF_SEGNO
|
MESSAGE _NUMEXPR, (LF_MOVCE->CSTO-#FF_VNONAMM+LF_MOVCE->RIV75+LF_MOVCE->RIV83+LF_MOVCE->RIV90+LF_MOVCE->RIV91+LF_MOVCE->RIVGF)*#FF_SEGNO
|
||||||
MESSAGE ADD,F0->FF_TOTVALORE
|
MESSAGE ADD,F0->FF_TOTVALORE
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <form.h>
|
|
||||||
#include <printer.h>
|
#include <printer.h>
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <utility.h>
|
|
||||||
|
|
||||||
#include "ce3.h"
|
#include "ce3.h"
|
||||||
#include "celib.h"
|
#include "celib.h"
|
||||||
@ -337,30 +335,23 @@ void TStampa_prospetto::aggiorna_totali(TCursor& cur, const int tipo, TTipo_cesp
|
|||||||
TRectype& recsalce = cur.curr(LF_SALCE);
|
TRectype& recsalce = cur.curr(LF_SALCE);
|
||||||
real csto = recsalce.get_real(SALCE_CSTO);
|
real csto = recsalce.get_real(SALCE_CSTO);
|
||||||
|
|
||||||
if (tipo == 1)
|
_cat._tot_csto += csto;
|
||||||
{
|
if (tipo == 2)
|
||||||
real vnonamm1 = recsalce.get_real(SALCE_VNONAMM);
|
_cat._tot_csto -= recsalce.get_real(SALCE_VNONAMMC);
|
||||||
_cat._tot_csto += csto - vnonamm1;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
_cat._tot_csto += csto;
|
_cat._tot_csto -= recsalce.get_real(SALCE_VNONAMM);
|
||||||
|
_cat._tot_csto -= recsalce.get_real(SALCE_VNONAMM06);
|
||||||
|
|
||||||
real riv75 = recsalce.get_real(SALCE_RIV75);
|
real rivsalce = recsalce.get_real(SALCE_RIV75);
|
||||||
real riv83 = recsalce.get_real(SALCE_RIV83);
|
rivsalce += recsalce.get_real(SALCE_RIV83);
|
||||||
real riv90 = recsalce.get_real(SALCE_RIV90);
|
rivsalce += recsalce.get_real(SALCE_RIV90);
|
||||||
real riv91 = recsalce.get_real(SALCE_RIV91);
|
rivsalce += recsalce.get_real(SALCE_RIV91);
|
||||||
real riv = riv75+riv83+riv90+riv91;
|
|
||||||
|
|
||||||
if (tipo == 1)
|
_cat._tot_riv += rivsalce;
|
||||||
{
|
if (tipo == 2)
|
||||||
const real rivgf = recsalce.get_real(SALCE_RIVGF);
|
_cat._tot_riv += recsalce.get_real(SALCE_RIVGC);
|
||||||
_cat._tot_riv += riv + rivgf;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
_cat._tot_riv += recsalce.get_real(SALCE_RIVGF);
|
||||||
const real rivgc = recsalce.get_real(SALCE_RIVGC);
|
|
||||||
_cat._tot_riv += riv + rivgc;
|
|
||||||
}
|
|
||||||
|
|
||||||
// valori della riga 2 (e, giá che si fa la scansione dei movimenti, anche i valori dei movam della riga 3)
|
// valori della riga 2 (e, giá che si fa la scansione dei movimenti, anche i valori dei movam della riga 3)
|
||||||
// (i valori della riga 2 non dipendono da tipo, mentre quelli della riga 3 si, in quanto hanno movam)
|
// (i valori della riga 2 non dipendono da tipo, mentre quelli della riga 3 si, in quanto hanno movam)
|
||||||
@ -397,30 +388,41 @@ void TStampa_prospetto::aggiorna_totali(TCursor& cur, const int tipo, TTipo_cesp
|
|||||||
const char tmc = cache().get("%TMC", codmov, "S6")[0]; //prende il valore del campo S6 nella tabella tipi movimento
|
const char tmc = cache().get("%TMC", codmov, "S6")[0]; //prende il valore del campo S6 nella tabella tipi movimento
|
||||||
const char segno = mov.get_char(MOVCE_SEGNO);
|
const char segno = mov.get_char(MOVCE_SEGNO);
|
||||||
const real signum = segno == '-' ? -1.0 : +1.0; //serve per sommare i movimenti con il loro segno effettivo
|
const real signum = segno == '-' ? -1.0 : +1.0; //serve per sommare i movimenti con il loro segno effettivo
|
||||||
riv75 = mov.get_real(MOVCE_RIV75);
|
|
||||||
riv83 = mov.get_real(MOVCE_RIV83);
|
real rivmovce = mov.get_real(MOVCE_RIV75);
|
||||||
riv90 = mov.get_real(MOVCE_RIV90);
|
rivmovce += mov.get_real(MOVCE_RIV83);
|
||||||
riv91 = mov.get_real(MOVCE_RIV91);
|
rivmovce += mov.get_real(MOVCE_RIV90);
|
||||||
riv = riv75+riv83+riv90+riv91;
|
rivmovce += mov.get_real(MOVCE_RIV91);
|
||||||
|
|
||||||
csto = mov.get_real(MOVCE_CSTO);
|
csto = mov.get_real(MOVCE_CSTO);
|
||||||
// inquietante modo di selezionare la rivg (rivgf o rivgc) in base al tipo senza usare una if else!
|
// inquietante modo di selezionare la rivg (rivgf o rivgc) in base al tipo senza usare una if else!
|
||||||
real rivg = mov.get_real(tipo == 1 ? MOVCE_RIVGF : MOVCE_RIVGC);
|
const real rivg = mov.get_real(tipo == 2 ? MOVCE_RIVGC : MOVCE_RIVGF);
|
||||||
real vnonamm2 = mov.get_real(MOVCE_VNONAMM);
|
real vnonamm2;
|
||||||
real qnor = amm.get_real(MOVAM_QNOR);
|
if (tipo == 2)
|
||||||
real qacc = amm.get_real(MOVAM_QACC);
|
vnonamm2 = recsalce.get_real(SALCE_VNONAMMC);
|
||||||
real qant = amm.get_real(MOVAM_QANT);
|
else
|
||||||
|
vnonamm2 = recsalce.get_real(SALCE_VNONAMM);
|
||||||
|
vnonamm2 += recsalce.get_real(SALCE_VNONAMM06);
|
||||||
|
//non si puo' avere un valore non ammortizzabile maggiore del costo prima delle
|
||||||
|
//rivalutazioni
|
||||||
|
if (vnonamm2 > csto)
|
||||||
|
vnonamm2 = csto;
|
||||||
|
|
||||||
|
real qmovam = amm.get_real(MOVAM_QNOR);
|
||||||
|
qmovam += amm.get_real(MOVAM_QACC);
|
||||||
|
qmovam += amm.get_real(MOVAM_QANT);
|
||||||
|
|
||||||
if (tmc == 'R')
|
if (tmc == 'R')
|
||||||
_cat._tot_riveser += (riv + rivg) * signum;
|
_cat._tot_riveser += (rivmovce + rivg) * signum;
|
||||||
if (tmc == 'I' || (tmc <= ' ' && segno == '+'))
|
if (tmc == 'I' || (tmc <= ' ' && segno == '+'))
|
||||||
{
|
{
|
||||||
_cat._tot_acqincr += (csto - vnonamm2 + riv + rivg) * signum;
|
_cat._tot_acqincr += (csto - vnonamm2 + rivmovce + rivg) * signum;
|
||||||
_cat._tot_incr += (qnor + qacc + qant) * signum;
|
_cat._tot_incr += qmovam * signum;
|
||||||
}
|
}
|
||||||
if (tmc == 'E' || (tmc <= ' ' && segno == '-'))
|
if (tmc == 'E' || (tmc <= ' ' && segno == '-'))
|
||||||
{
|
{
|
||||||
_cat._tot_cesselim2 += (csto - vnonamm2 + riv + rivg) * (-signum);
|
_cat._tot_cesselim2 += (csto - vnonamm2 + rivmovce + rivg) * (-signum);
|
||||||
_cat._tot_cesselim3 += (qnor + qant + qacc) * (-signum);
|
_cat._tot_cesselim3 += qmovam * (-signum);
|
||||||
}
|
}
|
||||||
if (tmc == 'P')
|
if (tmc == 'P')
|
||||||
_cat._tot_reinplus += (mov.get_real(MOVCE_PLUSREIN)) * signum;
|
_cat._tot_reinplus += (mov.get_real(MOVCE_PLUSREIN)) * signum;
|
||||||
|
@ -107,9 +107,17 @@ bool TLC_form::validate(TForm_item& fld, TToken_string& val)
|
|||||||
if (xvt_str_compare_ignoring_case(cmd, "_RIVGEN") == 0)
|
if (xvt_str_compare_ignoring_case(cmd, "_RIVGEN") == 0)
|
||||||
{
|
{
|
||||||
const TRectype& salce = relation()->curr(LF_SALCE);
|
const TRectype& salce = relation()->curr(LF_SALCE);
|
||||||
fld.set(salce.get(_tiposit == 1 ? SALCE_RIVGF : SALCE_RIVGC));
|
fld.set(salce.get(_tiposit == 2 ? SALCE_RIVGC : SALCE_RIVGF));
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (xvt_str_compare_ignoring_case(cmd, "_VNONAMM") == 0)
|
||||||
|
{
|
||||||
|
const TRectype& salce = relation()->curr(LF_SALCE);
|
||||||
|
real vnonamm = salce.get_real(_tiposit == 2 ? SALCE_VNONAMMC : SALCE_VNONAMM);
|
||||||
|
vnonamm += salce.get_real(SALCE_VNONAMM06);
|
||||||
|
fld.set(vnonamm.string());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return TCespi_list_form::validate(fld, val);
|
return TCespi_list_form::validate(fld, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -330,7 +330,7 @@ END
|
|||||||
VALUTA 12 15
|
VALUTA 12 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 17 3 ""
|
PROMPT 17 3 ""
|
||||||
FIELD LF_SALCE->VNONAMM
|
MESSAGE _VNONAMM
|
||||||
PICTURE "###.###.###.@@@"
|
PICTURE "###.###.###.@@@"
|
||||||
MESSAGE ADD,BE->12
|
MESSAGE ADD,BE->12
|
||||||
END
|
END
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
#include <form.h>
|
|
||||||
#include <printer.h>
|
#include <printer.h>
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
|
|
||||||
@ -50,9 +49,17 @@ bool TLM_form::validate(TForm_item& fld, TToken_string& val)
|
|||||||
if (xvt_str_compare_ignoring_case(cmd, "_RIVGEN") == 0)
|
if (xvt_str_compare_ignoring_case(cmd, "_RIVGEN") == 0)
|
||||||
{
|
{
|
||||||
const TRectype& mov = relation()->curr();
|
const TRectype& mov = relation()->curr();
|
||||||
fld.set(mov.get(_tiposit == 1 ? MOVCE_RIVGF : MOVCE_RIVGC));
|
fld.set(mov.get(_tiposit == 2 ? MOVCE_RIVGC : MOVCE_RIVGF));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
if (xvt_str_compare_ignoring_case(cmd, "_VNONAMM") == 0)
|
||||||
|
{
|
||||||
|
const TRectype& mov = relation()->curr();
|
||||||
|
real vnonamm = mov.get_real(_tiposit == 2 ? MOVCE_VNONAMMC : MOVCE_VNONAMM);
|
||||||
|
vnonamm += mov.get_real(MOVCE_VNONAMM06);
|
||||||
|
fld.set(vnonamm.string());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return TCespi_list_form::validate(fld, val);
|
return TCespi_list_form::validate(fld, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,7 +300,7 @@ END
|
|||||||
VALUTA 12 15
|
VALUTA 12 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 17 3 ""
|
PROMPT 17 3 ""
|
||||||
FIELD VNONAMM
|
MESSAGE _VNONAMM
|
||||||
PICTURE "###.###.###.@@@"
|
PICTURE "###.###.###.@@@"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -168,7 +168,9 @@ END
|
|||||||
|
|
||||||
LISTA -1
|
LISTA -1
|
||||||
BEGIN
|
BEGIN
|
||||||
|
KEY "Usoprom"
|
||||||
PROMPT 68 1 ""
|
PROMPT 68 1 ""
|
||||||
|
ITEM "|"
|
||||||
ITEM "1|100% - Esclusivamente strumentale"
|
ITEM "1|100% - Esclusivamente strumentale"
|
||||||
ITEM "2| 50% - Uso promiscuo"
|
ITEM "2| 50% - Uso promiscuo"
|
||||||
ITEM "3| 80% - Uso prom. agenti/rappresentanti"
|
ITEM "3| 80% - Uso prom. agenti/rappresentanti"
|
||||||
@ -177,6 +179,7 @@ END
|
|||||||
|
|
||||||
LISTA -1
|
LISTA -1
|
||||||
BEGIN
|
BEGIN
|
||||||
|
KEY "Flgtpvei"
|
||||||
PROMPT 110 1 ""
|
PROMPT 110 1 ""
|
||||||
ITEM "1|Nessuno"
|
ITEM "1|Nessuno"
|
||||||
ITEM "2|Auto, Autocaravan"
|
ITEM "2|Auto, Autocaravan"
|
||||||
@ -188,6 +191,7 @@ END
|
|||||||
|
|
||||||
LISTA -1
|
LISTA -1
|
||||||
BEGIN
|
BEGIN
|
||||||
|
KEY "Veidip"
|
||||||
PROMPT 129 1 ""
|
PROMPT 129 1 ""
|
||||||
ITEM "|NO"
|
ITEM "|NO"
|
||||||
ITEM "X|SI"
|
ITEM "X|SI"
|
||||||
|
@ -81,9 +81,11 @@ bool TECFE_form::validate(TForm_item& fld, TToken_string& val)
|
|||||||
if (xvt_str_compare_ignoring_case(cmd, "_VALAMM") == 0)
|
if (xvt_str_compare_ignoring_case(cmd, "_VALAMM") == 0)
|
||||||
{
|
{
|
||||||
const TRectype& salpro = relation()->curr(LF_SALCE);
|
const TRectype& salpro = relation()->curr(LF_SALCE);
|
||||||
real val = salpro.get_real(SALCE_CSTO)-salpro.get_real(SALCE_VNONAMM)-salpro.get_real(SALCE_PLUSREIN)+
|
real val = salpro.get_real(SALCE_CSTO)-salpro.get_real(SALCE_PLUSREIN)+
|
||||||
salpro.get_real(SALCE_RIV75)+salpro.get_real(SALCE_RIV83)+salpro.get_real(SALCE_RIV90)+salpro.get_real(SALCE_RIV91);
|
salpro.get_real(SALCE_RIV75)+salpro.get_real(SALCE_RIV83)+salpro.get_real(SALCE_RIV90)+salpro.get_real(SALCE_RIV91);
|
||||||
val += salpro.get_real(_tipo_sit == 1 ? SALCE_RIVGF : SALCE_RIVGC);
|
val += salpro.get_real(_tipo_sit == 2 ? SALCE_RIVGC : SALCE_RIVGF);
|
||||||
|
val -= salpro.get_real(_tipo_sit == 2 ? SALCE_VNONAMMC : SALCE_VNONAMM);
|
||||||
|
val -= salpro.get_real(SALCE_VNONAMM06);
|
||||||
fld.set(val.string());
|
fld.set(val.string());
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -44,20 +44,29 @@ bool TStampa_sintetica_mask::on_field_event(TOperable_field& o, TField_event e,
|
|||||||
ok = dc.on_category_event(o, e, jolly);
|
ok = dc.on_category_event(o, e, jolly);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case F_ESERCIZIO:
|
case F_ESERCIZIO:
|
||||||
case F_GRUPPO:
|
case F_GRUPPO:
|
||||||
case F_SPECIE:
|
case F_SPECIE:
|
||||||
if (e == fe_init || e == fe_modify)
|
if ((e == fe_init && o.dlg() == F_ESERCIZIO)|| e == fe_modify)
|
||||||
{
|
{
|
||||||
const TString& esercizio = get(F_ESERCIZIO);
|
|
||||||
const TString& gruppo = get(F_GRUPPO);
|
|
||||||
const TString& specie = get(F_SPECIE);
|
|
||||||
TString16 key; key << esercizio << gruppo << specie;
|
|
||||||
TRelation ccb("CCB");
|
TRelation ccb("CCB");
|
||||||
ccb.curr().put("CODTAB", key);
|
int err = NOERR;
|
||||||
if (ccb.read() == NOERR)
|
const TString& esercizio = get(F_ESERCIZIO);
|
||||||
|
if (esercizio.full())
|
||||||
|
{
|
||||||
|
const TString& gruppo = get(F_GRUPPO);
|
||||||
|
const TString& specie = get(F_SPECIE);
|
||||||
|
TString16 key; key << esercizio << gruppo << specie;
|
||||||
|
ccb.curr().put("CODTAB", key);
|
||||||
|
err = ccb.read();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
err = ccb.last();
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
autoload(ccb);
|
autoload(ccb);
|
||||||
|
o.check();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
@ -116,9 +125,11 @@ void TStampa_sintetica_recordset::set_filter(const TStampa_sintetica_mask& msk)
|
|||||||
class TStampa_sintetica_rep : public TReport
|
class TStampa_sintetica_rep : public TReport
|
||||||
{
|
{
|
||||||
int _anno;
|
int _anno;
|
||||||
|
int _tpamm;
|
||||||
TCespite _cespite;
|
TCespite _cespite;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
real val_amm(const TRectype& rec_saldi) const;
|
||||||
virtual bool get_usr_val(const TString& name, TVariant& var) const;
|
virtual bool get_usr_val(const TString& name, TVariant& var) const;
|
||||||
public:
|
public:
|
||||||
void set_filter(const TStampa_sintetica_mask& msk);
|
void set_filter(const TStampa_sintetica_mask& msk);
|
||||||
@ -127,9 +138,30 @@ public:
|
|||||||
void TStampa_sintetica_rep::set_filter(const TStampa_sintetica_mask& msk)
|
void TStampa_sintetica_rep::set_filter(const TStampa_sintetica_mask& msk)
|
||||||
{
|
{
|
||||||
_anno = msk.get_int(F_ESERCIZIO);
|
_anno = msk.get_int(F_ESERCIZIO);
|
||||||
|
_tpamm = msk.get_int(F_SITUAZIONE);
|
||||||
((TStampa_sintetica_recordset*) recordset())->set_filter(msk);
|
((TStampa_sintetica_recordset*) recordset())->set_filter(msk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
real TStampa_sintetica_rep::val_amm(const TRectype& rec_saldi) const
|
||||||
|
{
|
||||||
|
real valore = rec_saldi.get_real(SALCE_CSTO);
|
||||||
|
if (_tpamm == 2)
|
||||||
|
valore -= rec_saldi.get_real(SALCE_VNONAMMC);
|
||||||
|
else
|
||||||
|
valore -= rec_saldi.get_real(SALCE_VNONAMM);
|
||||||
|
valore -= rec_saldi.get_real(SALCE_VNONAMM06);
|
||||||
|
valore += rec_saldi.get_real(SALCE_RIV75);
|
||||||
|
valore += rec_saldi.get_real(SALCE_RIV83);
|
||||||
|
valore += rec_saldi.get_real(SALCE_RIV90);
|
||||||
|
valore += rec_saldi.get_real(SALCE_RIV91);
|
||||||
|
valore += rec_saldi.get_real(SALCE_RIVGF);
|
||||||
|
|
||||||
|
if (valore < ZERO)
|
||||||
|
valore = ZERO;
|
||||||
|
|
||||||
|
return valore;
|
||||||
|
}
|
||||||
|
|
||||||
//metodo per il calcolo dei campi da calcolare (ma va'!) nel report
|
//metodo per il calcolo dei campi da calcolare (ma va'!) nel report
|
||||||
bool TStampa_sintetica_rep::get_usr_val(const TString& name, TVariant& var) const
|
bool TStampa_sintetica_rep::get_usr_val(const TString& name, TVariant& var) const
|
||||||
{
|
{
|
||||||
@ -139,8 +171,7 @@ bool TStampa_sintetica_rep::get_usr_val(const TString& name, TVariant& var) cons
|
|||||||
{
|
{
|
||||||
TCespite& c = (TCespite&)_cespite;
|
TCespite& c = (TCespite&)_cespite;
|
||||||
c.read(idcespite);
|
c.read(idcespite);
|
||||||
c.load_saldi(1, _anno);
|
c.load_saldi(_tpamm, _anno); }
|
||||||
}
|
|
||||||
|
|
||||||
if (name == "#DESCAT") //categoria (descrizione della categoria corrente)
|
if (name == "#DESCAT") //categoria (descrizione della categoria corrente)
|
||||||
{
|
{
|
||||||
@ -154,32 +185,37 @@ bool TStampa_sintetica_rep::get_usr_val(const TString& name, TVariant& var) cons
|
|||||||
if (name.starts_with("#COSTO")) //costo storico dell'anno
|
if (name.starts_with("#COSTO")) //costo storico dell'anno
|
||||||
{
|
{
|
||||||
if (name.ends_with("FIN")) //tiposaldo finale
|
if (name.ends_with("FIN")) //tiposaldo finale
|
||||||
var = _cespite.sal_pro().get_real(SALCE_CSTO);
|
var = val_amm(_cespite.sal_pro());
|
||||||
else //tiposaldo iniziale
|
else //tiposaldo iniziale
|
||||||
var = _cespite.sal_ini().get_real(SALCE_CSTO);
|
var = val_amm(_cespite.sal_ini());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (name == "#PERCAMM") //percentuale ammortamento
|
if (name == "#PERCAMM") //percentuale ammortamento
|
||||||
{
|
{
|
||||||
const TRectype& rec_ammce = _cespite.amm_pro();
|
const TRectype& rec_ammce = _cespite.amm_pro();
|
||||||
var = rec_ammce.get_real(AMMCE_PNOR) + rec_ammce.get_real(AMMCE_PACC) + rec_ammce.get_real(AMMCE_PANT);
|
var = real(rec_ammce.get_real(AMMCE_PNOR) + rec_ammce.get_real(AMMCE_PACC) + rec_ammce.get_real(AMMCE_PANT));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (name == "#QAMM") //fondo ammortamento esercizio corrente
|
if (name == "#QAMM") //fondo ammortamento esercizio corrente
|
||||||
{
|
{
|
||||||
const TRectype& rec_ammce = _cespite.amm_pro();
|
const TRectype& rec_ammce = _cespite.amm_pro();
|
||||||
var = rec_ammce.get_real(AMMCE_QNOR) + rec_ammce.get_real(AMMCE_QACC) + rec_ammce.get_real(AMMCE_QANT);
|
var = real(rec_ammce.get_real(AMMCE_QNOR) + rec_ammce.get_real(AMMCE_QACC) + rec_ammce.get_real(AMMCE_QANT));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (name == "#FAMM") //fondo ammortamento alla fine dell'esercizio precedente
|
if (name == "#FAMM") //fondo ammortamento alla fine dell'esercizio precedente
|
||||||
{
|
{
|
||||||
const TRectype& rec_ammce = _cespite.amm_ini();
|
const TRectype& rec_ammce = _cespite.amm_pro();
|
||||||
var = rec_ammce.get_real(AMMCE_QNOR) + rec_ammce.get_real(AMMCE_QACC) + rec_ammce.get_real(AMMCE_QANT);
|
var = rec_ammce.get_real(AMMCE_PNOR) + rec_ammce.get_real(AMMCE_PACC) + rec_ammce.get_real(AMMCE_PANT);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (name == "#RESAMM") //residuo da ammortizzare
|
if (name == "#RESAMM") //residuo da ammortizzare
|
||||||
{
|
{
|
||||||
var = _cespite.res_amm();
|
var = _cespite.res_amm();
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if (name == "#SITUAZIONE") //tipo situazione da stampare in testata
|
||||||
|
{
|
||||||
|
var.set(_tpamm);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return TReport::get_usr_val(name, var);
|
return TReport::get_usr_val(name, var);
|
||||||
|
@ -15,5 +15,6 @@
|
|||||||
#define F_D_FROM_CAT 113
|
#define F_D_FROM_CAT 113
|
||||||
#define F_TO_CAT 114
|
#define F_TO_CAT 114
|
||||||
#define F_D_TO_CAT 115
|
#define F_D_TO_CAT 115
|
||||||
|
#define F_SITUAZIONE 116
|
||||||
|
|
||||||
#define F_REPORT 116
|
#define F_REPORT 117
|
||||||
|
@ -148,4 +148,13 @@ BEGIN
|
|||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
|
RADIOBUTTON F_SITUAZIONE 78
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 10 "@bSituazione"
|
||||||
|
ITEM "1|Fiscale"
|
||||||
|
ITEM "2|Civilistica"
|
||||||
|
ITEM "3|Gestionale"
|
||||||
|
FLAGS "Z"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
#include <form.h>
|
|
||||||
#include <printer.h>
|
#include <printer.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <recarray.h>
|
|
||||||
|
|
||||||
#include "celib.h"
|
#include "celib.h"
|
||||||
#include "../ve/velib.h"
|
#include "../ve/velib.h"
|
||||||
|
80
ce/celib.cpp
80
ce/celib.cpp
@ -16,21 +16,20 @@ void TDitta_cespiti::load_default()
|
|||||||
{
|
{
|
||||||
_ditta = prefix().get_codditta();
|
_ditta = prefix().get_codditta();
|
||||||
|
|
||||||
TConfig dit(CONFIG_DITTA);
|
TConfig dit(CONFIG_DITTA, "ce");
|
||||||
_esercizio = dit.get_int("CODESCORR");
|
_esercizio = dit.get_int("CODESCORR");
|
||||||
|
|
||||||
|
TEsercizi_contabili esc;
|
||||||
if (_esercizio <= 0)
|
if (_esercizio <= 0)
|
||||||
{
|
_esercizio = esc.date2prevesc(TDate(TODAY));
|
||||||
const TDate oggi(TODAY);
|
|
||||||
_esercizio = oggi.year();
|
|
||||||
}
|
|
||||||
|
|
||||||
_gruppo = dit.get("GRUPPOCORR");
|
_gruppo = dit.get("GRUPPOCORR");
|
||||||
|
|
||||||
TString16 str = dit.get("SPECIECORR");
|
TString8 str = dit.get("SPECIECORR");
|
||||||
str.strip("\"");
|
str.strip("\"");
|
||||||
_specie = str;
|
_specie = str;
|
||||||
|
|
||||||
_data_primi_ricavi = dit.get("CADTR");
|
_data_primi_ricavi = dit.get("CADTR");
|
||||||
|
|
||||||
_anno_tuir = dit.get_int("CATSU");
|
_anno_tuir = dit.get_int("CATSU");
|
||||||
if (_anno_tuir == 0 || _anno_tuir == 1) // Demenzialmente può essere memorizzato come 0 o 1
|
if (_anno_tuir == 0 || _anno_tuir == 1) // Demenzialmente può essere memorizzato come 0 o 1
|
||||||
_anno_tuir += 1988;
|
_anno_tuir += 1988;
|
||||||
@ -57,16 +56,12 @@ void TDitta_cespiti::load_records()
|
|||||||
|
|
||||||
void TDitta_cespiti::set_attivita(int esercizio, int gruppo, const char* specie)
|
void TDitta_cespiti::set_attivita(int esercizio, int gruppo, const char* specie)
|
||||||
{
|
{
|
||||||
if (esercizio <= 0)
|
if (esercizio > 0)
|
||||||
{
|
|
||||||
const TDate oggi(TODAY);
|
|
||||||
_esercizio = oggi.year();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
_esercizio = esercizio;
|
_esercizio = esercizio;
|
||||||
|
|
||||||
if (gruppo > 0)
|
if (gruppo > 0)
|
||||||
_gruppo.format("%02d", gruppo);
|
_gruppo.format("%02d", gruppo);
|
||||||
|
|
||||||
if (specie && *specie)
|
if (specie && *specie)
|
||||||
_specie.format("%-4s", (const char*)specie);
|
_specie.format("%-4s", (const char*)specie);
|
||||||
|
|
||||||
@ -80,7 +75,7 @@ void TDitta_cespiti::set_attivita(int esercizio, int gruppo, const char* specie)
|
|||||||
_anno_tuir = dit.get_int("CATSU");
|
_anno_tuir = dit.get_int("CATSU");
|
||||||
if (_anno_tuir == 0 || _anno_tuir == 1) // Demenzialmente può essere memorizzato come 0 o 1
|
if (_anno_tuir == 0 || _anno_tuir == 1) // Demenzialmente può essere memorizzato come 0 o 1
|
||||||
_anno_tuir += 1988;
|
_anno_tuir += 1988;
|
||||||
|
|
||||||
_ditta = prefix().get_codditta();
|
_ditta = prefix().get_codditta();
|
||||||
|
|
||||||
load_records();
|
load_records();
|
||||||
@ -107,9 +102,7 @@ bool TDitta_cespiti::bollato_stampato() const
|
|||||||
int TDitta_cespiti::esercizio_corrente(TDate& inies, TDate& fines) const
|
int TDitta_cespiti::esercizio_corrente(TDate& inies, TDate& fines) const
|
||||||
{
|
{
|
||||||
TEsercizi_contabili esc;
|
TEsercizi_contabili esc;
|
||||||
const TEsercizio& e = esc[_esercizio];
|
esc.code2range(_esercizio, inies, fines);
|
||||||
inies = e.inizio();
|
|
||||||
fines = e.fine();
|
|
||||||
return _esercizio;
|
return _esercizio;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,8 +111,8 @@ void TDitta_cespiti::init_mask(TMask& m)
|
|||||||
update_when_needed();
|
update_when_needed();
|
||||||
|
|
||||||
TBit_array found;
|
TBit_array found;
|
||||||
bool started = FALSE;
|
bool started = false;
|
||||||
bool finished = FALSE;
|
bool finished = false;
|
||||||
for (int i = 0; !finished && i < 20 && i < m.fields(); i++)
|
for (int i = 0; !finished && i < 20 && i < m.fields(); i++)
|
||||||
{
|
{
|
||||||
TMask_field& f = m.fld(i);
|
TMask_field& f = m.fld(i);
|
||||||
@ -134,7 +127,7 @@ void TDitta_cespiti::init_mask(TMask& m)
|
|||||||
{
|
{
|
||||||
f.set(_esercizio);
|
f.set(_esercizio);
|
||||||
f.check();
|
f.check();
|
||||||
found.set(1, TRUE);
|
found.set(1, true);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if (f.is_edit())
|
if (f.is_edit())
|
||||||
@ -144,7 +137,7 @@ void TDitta_cespiti::init_mask(TMask& m)
|
|||||||
f.set(_specie);
|
f.set(_specie);
|
||||||
f.check();
|
f.check();
|
||||||
found.set(5);
|
found.set(5);
|
||||||
finished = TRUE;
|
finished = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -157,7 +150,7 @@ void TDitta_cespiti::init_mask(TMask& m)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (f.is_kind_of(CLASS_GROUPBOX_FIELD))
|
if (f.is_kind_of(CLASS_GROUPBOX_FIELD))
|
||||||
finished = TRUE;
|
finished = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -198,7 +191,6 @@ real TDitta_cespiti::coefficiente_durata_esercizio() const
|
|||||||
return _cce.get_real("S5");
|
return _cce.get_real("S5");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TDitta_cespiti::rinvio_ammortamento_ai_primi_ricavi() const
|
bool TDitta_cespiti::rinvio_ammortamento_ai_primi_ricavi() const
|
||||||
{
|
{
|
||||||
return _cce.get_bool("B2");
|
return _cce.get_bool("B2");
|
||||||
@ -219,9 +211,17 @@ bool TDitta_cespiti::esente_art14() const
|
|||||||
return _cce.get_bool("B7");
|
return _cce.get_bool("B7");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TDitta_cespiti::legge_223_06() const
|
||||||
|
{
|
||||||
|
const TDate data(4, 7, 2006);
|
||||||
|
TDate inies, fines;
|
||||||
|
esercizio_corrente(inies, fines);
|
||||||
|
return data <= fines;
|
||||||
|
}
|
||||||
|
|
||||||
const TRectype& TDitta_cespiti::categoria(int gr, const char* sp, int ca) const
|
const TRectype& TDitta_cespiti::categoria(int gr, const char* sp, int ca) const
|
||||||
{
|
{
|
||||||
TString16 key;
|
TString8 key;
|
||||||
if (ca >= 41)
|
if (ca >= 41)
|
||||||
key.format(" %02d", ca);
|
key.format(" %02d", ca);
|
||||||
else
|
else
|
||||||
@ -293,11 +293,12 @@ bool TDitta_cespiti::on_category_event(TOperable_field& o, TField_event e, long
|
|||||||
rec.put("S0", fld.get());
|
rec.put("S0", fld.get());
|
||||||
recno = cur.read();
|
recno = cur.read();
|
||||||
}
|
}
|
||||||
TCursor_sheet sht(&cur, fields, TR("Categorie dei cespiti"), header, 0, 1);
|
TToken_string siblings;
|
||||||
|
TBrowse_sheet sht(&cur, fields, TR("Categorie cespiti"), header, 0, fld, siblings);
|
||||||
sht.select(recno);
|
sht.select(recno);
|
||||||
if (sht.run() == K_ENTER)
|
if (sht.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
TMask& m = fld.mask();
|
const TMask& m = fld.mask();
|
||||||
const int pos = m.id2pos(fld.dlg());
|
const int pos = m.id2pos(fld.dlg());
|
||||||
TMask_field& fout = m.fld(pos + (by_code ? +1 : -1));
|
TMask_field& fout = m.fld(pos + (by_code ? +1 : -1));
|
||||||
TToken_string& row = sht.row();
|
TToken_string& row = sht.row();
|
||||||
@ -354,10 +355,9 @@ TDitta_cespiti& ditta_cespiti()
|
|||||||
|
|
||||||
bool TForm_cespiti::validate(TForm_item& fld, TToken_string& val)
|
bool TForm_cespiti::validate(TForm_item& fld, TToken_string& val)
|
||||||
{
|
{
|
||||||
const TString16 code = val.get(0);
|
if (val.starts_with("_DESCAT"))
|
||||||
if (code == "_DESCAT")
|
|
||||||
{
|
{
|
||||||
const TString8 fgr = val.get();
|
const TString8 fgr = val.get(1);
|
||||||
const TString8 fsp = val.get();
|
const TString8 fsp = val.get();
|
||||||
const TString8 fca = val.get();
|
const TString8 fca = val.get();
|
||||||
|
|
||||||
@ -366,7 +366,7 @@ bool TForm_cespiti::validate(TForm_item& fld, TToken_string& val)
|
|||||||
const int categoria = atoi(fld.find_field(fca).get());
|
const int categoria = atoi(fld.find_field(fca).get());
|
||||||
const TRectype& cac = ditta_cespiti().categoria(gruppo, specie, categoria);
|
const TRectype& cac = ditta_cespiti().categoria(gruppo, specie, categoria);
|
||||||
fld.set(cac.get("S0"));
|
fld.set(cac.get("S0"));
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
return TForm::validate(fld,val);
|
return TForm::validate(fld,val);
|
||||||
}
|
}
|
||||||
@ -386,23 +386,23 @@ bool null_fields(const TRectype& rec, const char* fld0, const char* fld1, const
|
|||||||
const char* fld6, const char* fld7, const char* fld8)
|
const char* fld6, const char* fld7, const char* fld8)
|
||||||
{
|
{
|
||||||
if (!rec.get_real(fld0).is_zero())
|
if (!rec.get_real(fld0).is_zero())
|
||||||
return FALSE;
|
return false;
|
||||||
if (!rec.get_real(fld1).is_zero())
|
if (!rec.get_real(fld1).is_zero())
|
||||||
return FALSE;
|
return false;
|
||||||
if (fld2 && *fld2 && !rec.get_real(fld2).is_zero())
|
if (fld2 && *fld2 && !rec.get_real(fld2).is_zero())
|
||||||
return FALSE;
|
return false;
|
||||||
if (fld3 && *fld3 && !rec.get_real(fld3).is_zero())
|
if (fld3 && *fld3 && !rec.get_real(fld3).is_zero())
|
||||||
return FALSE;
|
return false;
|
||||||
if (fld4 && *fld4 && !rec.get_real(fld4).is_zero())
|
if (fld4 && *fld4 && !rec.get_real(fld4).is_zero())
|
||||||
return FALSE;
|
return false;
|
||||||
if (fld5 && *fld5 && !rec.get_real(fld5).is_zero())
|
if (fld5 && *fld5 && !rec.get_real(fld5).is_zero())
|
||||||
return FALSE;
|
return false;
|
||||||
if (fld6 && *fld6 && !rec.get_real(fld6).is_zero())
|
if (fld6 && *fld6 && !rec.get_real(fld6).is_zero())
|
||||||
return FALSE;
|
return false;
|
||||||
if (fld7 && *fld7 && !rec.get_real(fld7).is_zero())
|
if (fld7 && *fld7 && !rec.get_real(fld7).is_zero())
|
||||||
return FALSE;
|
return false;
|
||||||
if (fld8 && *fld8 && !rec.get_real(fld8).is_zero())
|
if (fld8 && *fld8 && !rec.get_real(fld8).is_zero())
|
||||||
return FALSE;
|
return false;
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -44,6 +44,8 @@ public:
|
|||||||
bool esercizio_costituzione() const;
|
bool esercizio_costituzione() const;
|
||||||
real coefficiente_durata_esercizio() const;
|
real coefficiente_durata_esercizio() const;
|
||||||
int anno_tuir() const { return _anno_tuir; }
|
int anno_tuir() const { return _anno_tuir; }
|
||||||
|
bool legge_223_06() const;
|
||||||
|
|
||||||
bool bollato_stampato() const;
|
bool bollato_stampato() const;
|
||||||
bool ammortamento_proporzionale() const { return _amm_prop; }
|
bool ammortamento_proporzionale() const { return _amm_prop; }
|
||||||
|
|
||||||
|
@ -31,3 +31,4 @@
|
|||||||
#define CESPI_REPARTO "REPARTO"
|
#define CESPI_REPARTO "REPARTO"
|
||||||
#define CESPI_IDIMP "IDIMP"
|
#define CESPI_IDIMP "IDIMP"
|
||||||
#define CESPI_PERCIMP "PERCIMP"
|
#define CESPI_PERCIMP "PERCIMP"
|
||||||
|
#define CESPI_FABBR06 "FABBR06"
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
136
|
136
|
||||||
0
|
0
|
||||||
$ammce|0|0|325|0|Ammortamento cespiti|||
|
$ammce|0|0|343|0|Ammortamento cespiti|||
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
136
|
136
|
||||||
31
|
32
|
||||||
IDCESPITE|1|10|0|Codice cespite (ZZZZZZZZZZ)
|
IDCESPITE|1|10|0|Codice cespite (ZZZZZZZZZZ)
|
||||||
CODES|2|4|0|Codice esercizio
|
CODES|2|4|0|Codice esercizio
|
||||||
TPSALDO|2|1|0|Tipo saldo
|
TPSALDO|2|1|0|Tipo saldo
|
||||||
TPAMM|2|1|0|Tipo ammortamento
|
TPAMM|2|1|0|Tipo ammortamento
|
||||||
SCELTE|2|1|0|Flag scelta ammortamento
|
SCELTE|2|1|0|Flag scelta ammortamento
|
||||||
AMMRIT|8|1|0|Scelta ammortamento ritardato
|
AMMRIT|8|1|0|Scelta ammortamento ritardato
|
||||||
CSCEN|8|1|0|Ammortamento 100% beni inferiori al milione
|
CSCEN|8|1|0|Ammortamento 100% beni inferiori a 516,46 euro
|
||||||
FZPER|8|1|0|Flag forzatura percentuali
|
FZPER|8|1|0|Flag forzatura percentuali
|
||||||
PNOR|4|7|3|% ammortamento normale
|
PNOR|4|7|3|% ammortamento normale
|
||||||
PACC|4|7|3|% ammortamento accelerato
|
PACC|4|7|3|% ammortamento accelerato
|
||||||
@ -31,5 +31,6 @@ MSG04|8|1|0|Messaggio 4
|
|||||||
MSG05|8|1|0|Messaggio 5
|
MSG05|8|1|0|Messaggio 5
|
||||||
MSGD05|1|60|0|Descrizione messaggio 5
|
MSGD05|1|60|0|Descrizione messaggio 5
|
||||||
MSG06|8|1|0|Messaggio 6
|
MSG06|8|1|0|Messaggio 6
|
||||||
|
FRINGEBEN|4|18|3|Fringe benefit veicoli in uso ai dipendenti
|
||||||
1
|
1
|
||||||
IDCESPITE+CODES+TPSALDO+TPAMM|
|
IDCESPITE+CODES+TPSALDO+TPAMM|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
139
|
139
|
||||||
0
|
0
|
||||||
$cespi|0|0|255|0|Anagrafica cespiti|||
|
$cespi|0|0|256|0|Anagrafica cespiti|||
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
139
|
139
|
||||||
33
|
34
|
||||||
IDCESPITE|1|10|0|Codice cespite (ZZZZZZZZZZ)
|
IDCESPITE|1|10|0|Codice cespite (ZZZZZZZZZZ)
|
||||||
CODCGRA|2|2|0|Codice gruppo (da chiarire) (AG0CGR)
|
CODCGRA|2|2|0|Codice gruppo (da chiarire) (AG0CGR)
|
||||||
CODSPA|1|4|0|Codice specie (da chiarire) (ATACSP)
|
CODSPA|1|4|0|Codice specie (da chiarire) (ATACSP)
|
||||||
@ -33,6 +33,7 @@ STABILIM|1|30|0|Stabilimento
|
|||||||
REPARTO|1|30|0|Reparto
|
REPARTO|1|30|0|Reparto
|
||||||
IDIMP|3|5|0|Codice impianto
|
IDIMP|3|5|0|Codice impianto
|
||||||
PERCIMP|4|7|3|% di assegnazione all'impianto
|
PERCIMP|4|7|3|% di assegnazione all'impianto
|
||||||
|
FABBR06|2|1|0|Fabbr.str. art.43 d.l.223/06(0=Nessuno, 1=Industriale, 2=Altro)
|
||||||
3
|
3
|
||||||
IDCESPITE|
|
IDCESPITE|
|
||||||
CODCGRA+CODSPA+CODCAT+DTCOMP+IDCESPITE|
|
CODCGRA+CODSPA+CODCAT+DTCOMP+IDCESPITE|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
142
|
142
|
||||||
0
|
0
|
||||||
$movce|0|0|301|0|Movimenti cespiti|||
|
$movce|0|0|380|0|Movimenti cespiti|||
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
142
|
142
|
||||||
23
|
28
|
||||||
IDCESPITE|1|10|0|Codice cespite (ZZZZZZZZZZ)
|
IDCESPITE|1|10|0|Codice cespite (ZZZZZZZZZZ)
|
||||||
IDMOV|1|11|0|Numero movimento (ZZZZZZZZZZZ)
|
IDMOV|1|11|0|Numero movimento (ZZZZZZZZZZZ)
|
||||||
DTMOV|5|8|0|Data movimento cespite
|
DTMOV|5|8|0|Data movimento cespite
|
||||||
@ -13,7 +13,7 @@ IMPVEN|4|18|3|Importo di vendita (per calcolo plusvalenza/minusvalenza)
|
|||||||
SEGNO|1|1|0|Segno movimento (da chiarire)
|
SEGNO|1|1|0|Segno movimento (da chiarire)
|
||||||
NUMELE|2|3|0|Nunero elementi
|
NUMELE|2|3|0|Nunero elementi
|
||||||
CSTO|4|18|3|Costo storico
|
CSTO|4|18|3|Costo storico
|
||||||
VNONAMM|4|18|3|Valore non ammortizzabile
|
VNONAMM|4|18|3|Valore non ammortizzabile fiscale e gestionale
|
||||||
PLUSREIN|4|18|3|Plusvalenza reinvestita
|
PLUSREIN|4|18|3|Plusvalenza reinvestita
|
||||||
RIV75|4|18|3|Rivalutazione Legge 576/75
|
RIV75|4|18|3|Rivalutazione Legge 576/75
|
||||||
RIV83|4|18|3|Rivalutazione Legge 72/83
|
RIV83|4|18|3|Rivalutazione Legge 72/83
|
||||||
@ -23,6 +23,11 @@ RIVGF|4|18|3|Rivalutazione generica fiscale
|
|||||||
RIVGC|4|18|3|Rivalutazione generica civilistica
|
RIVGC|4|18|3|Rivalutazione generica civilistica
|
||||||
STAMPATO|8|1|0|Stampato su almeno un bollato in esercizi passati (STBOLLATO)
|
STAMPATO|8|1|0|Stampato su almeno un bollato in esercizi passati (STBOLLATO)
|
||||||
NUMREG|3|7|0|Numero di registrazione corrispondente di prima nota
|
NUMREG|3|7|0|Numero di registrazione corrispondente di prima nota
|
||||||
|
VNONAMM06|4|18|3|Valore non ammortizzabile (Fabbricati strumentali art.43 d.l.223/06)
|
||||||
|
VNONAMMC|4|18|3|Valore non ammortizzabile civilistico
|
||||||
|
VALTERR06|4|18|3|Valore terreno (Fabbricati strumentali art.43 d.l.223/06)
|
||||||
|
VALCALC06|4|18|3|Valore calcolo (Fabbricati strumentali art.43 d.l.223/06)
|
||||||
|
PERCALC06|4|7|3|% calcolo (Fabbricati strumentali art.43 d.l.223/06)
|
||||||
3
|
3
|
||||||
IDMOV|
|
IDMOV|
|
||||||
IDCESPITE+IDMOV|
|
IDCESPITE+IDMOV|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
143
|
143
|
||||||
0
|
0
|
||||||
$salce|0|0|212|0|Saldi cespiti|||
|
$salce|0|0|248|0|Saldi cespiti|||
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
143
|
143
|
||||||
18
|
20
|
||||||
IDCESPITE|1|10|0|Codice cespite (ZZZZZZZZZZ)
|
IDCESPITE|1|10|0|Codice cespite (ZZZZZZZZZZ)
|
||||||
CODES|2|4|0|Codice esercizio (DTINES)
|
CODES|2|4|0|Codice esercizio (DTINES)
|
||||||
TPSALDO|2|1|0|Tipo saldo
|
TPSALDO|2|1|0|Tipo saldo
|
||||||
NUMELE|2|3|0|Numero elementi
|
NUMELE|2|3|0|Numero elementi
|
||||||
CSTO|4|18|3|Costo storico
|
CSTO|4|18|3|Costo storico
|
||||||
VNONAMM|4|18|3|Valore non ammortizzabile
|
VNONAMM|4|18|3|Valore non ammortizzabile fiscale e gestionale
|
||||||
PLUSREIN|4|18|3|PLusvalenza reinvestita
|
PLUSREIN|4|18|3|PLusvalenza reinvestita
|
||||||
RIV75|4|18|3|Rivalutazione Legge 576/75
|
RIV75|4|18|3|Rivalutazione Legge 576/75
|
||||||
RIV83|4|18|3|Rivalutazione Legge 72/83
|
RIV83|4|18|3|Rivalutazione Legge 72/83
|
||||||
@ -18,5 +18,7 @@ RIVGC|4|18|3|Rivalutazione generica civilistica
|
|||||||
VSPMANU|4|18|3|Valore spese di manutenzione
|
VSPMANU|4|18|3|Valore spese di manutenzione
|
||||||
ANNIAMM|2|3|0|Numero esercizi ammortamento giá chiusi (per controllo ammortamento anticipato)
|
ANNIAMM|2|3|0|Numero esercizi ammortamento giá chiusi (per controllo ammortamento anticipato)
|
||||||
DTSTBOLL|5|8|0|Data di stampa del bollato
|
DTSTBOLL|5|8|0|Data di stampa del bollato
|
||||||
|
VNONAMMC|4|18|3|Valore non ammortizzabile civilistico
|
||||||
|
VNONAMM06|4|18|3|Valore non ammortizzabile (Fabbricati strumentali art.43 d.l.223/06)
|
||||||
1
|
1
|
||||||
IDCESPITE+CODES+TPSALDO|
|
IDCESPITE+CODES+TPSALDO|
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
#define MOVCE_NUMELE "NUMELE"
|
#define MOVCE_NUMELE "NUMELE"
|
||||||
#define MOVCE_CSTO "CSTO"
|
#define MOVCE_CSTO "CSTO"
|
||||||
#define MOVCE_VNONAMM "VNONAMM"
|
#define MOVCE_VNONAMM "VNONAMM"
|
||||||
|
#define MOVCE_VNONAMMC "VNONAMMC"
|
||||||
|
#define MOVCE_VNONAMM06 "VNONAMM06"
|
||||||
#define MOVCE_PLUSREIN "PLUSREIN"
|
#define MOVCE_PLUSREIN "PLUSREIN"
|
||||||
#define MOVCE_RIV75 "RIV75"
|
#define MOVCE_RIV75 "RIV75"
|
||||||
#define MOVCE_RIV83 "RIV83"
|
#define MOVCE_RIV83 "RIV83"
|
||||||
@ -20,3 +22,6 @@
|
|||||||
#define MOVCE_RIVGF "RIVGF"
|
#define MOVCE_RIVGF "RIVGF"
|
||||||
#define MOVCE_RIVGC "RIVGC"
|
#define MOVCE_RIVGC "RIVGC"
|
||||||
#define MOVCE_STAMPATO "STAMPATO"
|
#define MOVCE_STAMPATO "STAMPATO"
|
||||||
|
#define MOVCE_VALTERR "VALTERR06"
|
||||||
|
#define MOVCE_VALCALC "VALCALC06"
|
||||||
|
#define MOVCE_PERCALC "PERCALC06"
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
#define SALCE_NUMELE "NUMELE"
|
#define SALCE_NUMELE "NUMELE"
|
||||||
#define SALCE_CSTO "CSTO"
|
#define SALCE_CSTO "CSTO"
|
||||||
#define SALCE_VNONAMM "VNONAMM"
|
#define SALCE_VNONAMM "VNONAMM"
|
||||||
|
#define SALCE_VNONAMM06 "VNONAMM06"
|
||||||
|
#define SALCE_VNONAMMC "VNONAMMC"
|
||||||
#define SALCE_PLUSREIN "PLUSREIN"
|
#define SALCE_PLUSREIN "PLUSREIN"
|
||||||
#define SALCE_RIV75 "RIV75"
|
#define SALCE_RIV75 "RIV75"
|
||||||
#define SALCE_RIV83 "RIV83"
|
#define SALCE_RIV83 "RIV83"
|
||||||
|
319
cg/cg0200.cpp
319
cg/cg0200.cpp
@ -1,28 +1,22 @@
|
|||||||
#include <config.h>
|
|
||||||
#include <defmask.h>
|
|
||||||
#include <execp.h>
|
|
||||||
#include <golem.h>
|
|
||||||
#include <msksheet.h>
|
|
||||||
#include <relapp.h>
|
|
||||||
#include <recarray.h>
|
|
||||||
#include <sheet.h>
|
|
||||||
#include <validate.h>
|
|
||||||
#include <utility.h>
|
|
||||||
|
|
||||||
#include <pconti.h>
|
|
||||||
#include <comuni.h>
|
|
||||||
#include <clifo.h>
|
|
||||||
#include <anagr.h>
|
|
||||||
#include <anafis.h>
|
|
||||||
#include <cfven.h>
|
|
||||||
#include <mov.h>
|
|
||||||
#include <indsp.h>
|
|
||||||
#include <modaut.h>
|
|
||||||
|
|
||||||
#include "cg0.h"
|
#include "cg0.h"
|
||||||
#include "cg0200.h"
|
#include "cg0200.h"
|
||||||
#include "cg0201.h"
|
#include "cg0201.h"
|
||||||
|
|
||||||
|
#include <defmask.h>
|
||||||
|
#include <golem.h>
|
||||||
|
#include <modaut.h>
|
||||||
|
#include <msksheet.h>
|
||||||
|
#include <recarray.h>
|
||||||
|
#include <relapp.h>
|
||||||
|
|
||||||
|
#include <anagr.h>
|
||||||
|
#include <anafis.h>
|
||||||
|
#include <cfven.h>
|
||||||
|
#include <clifo.h>
|
||||||
|
#include <comuni.h>
|
||||||
|
#include <indsp.h>
|
||||||
|
#include <mov.h>
|
||||||
|
|
||||||
class TClifo_application : public TRelation_application
|
class TClifo_application : public TRelation_application
|
||||||
{
|
{
|
||||||
TMask* _msk;
|
TMask* _msk;
|
||||||
@ -37,7 +31,7 @@ protected:
|
|||||||
bool user_create();
|
bool user_create();
|
||||||
bool user_destroy();
|
bool user_destroy();
|
||||||
virtual TMask* get_mask(int mode) { return _msk; }
|
virtual TMask* get_mask(int mode) { return _msk; }
|
||||||
virtual bool changing_mask(int mode) { return FALSE; }
|
virtual bool changing_mask(int mode) { return false; }
|
||||||
virtual bool save_and_new() const { return _savenew; }
|
virtual bool save_and_new() const { return _savenew; }
|
||||||
virtual bool protected_record(TRectype &rec);
|
virtual bool protected_record(TRectype &rec);
|
||||||
virtual bool get_next_key(TToken_string& key);
|
virtual bool get_next_key(TToken_string& key);
|
||||||
@ -74,12 +68,12 @@ protected:
|
|||||||
static bool percip_handler(TMask_field& f, KEY key);
|
static bool percip_handler(TMask_field& f, KEY key);
|
||||||
static bool email_handler(TMask_field& f, KEY k);
|
static bool email_handler(TMask_field& f, KEY k);
|
||||||
static bool rsoc_handler(TMask_field& f, KEY k);
|
static bool rsoc_handler(TMask_field& f, KEY k);
|
||||||
virtual bool has_filtered_cursor() const { return TRUE;}
|
virtual bool has_filtered_cursor() const { return true;}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||||
virtual bool check_autorization() const
|
virtual bool check_autorization() const
|
||||||
{return FALSE;}
|
{return false;}
|
||||||
virtual TRelation* get_relation() const {return (TRelation*)_rel;}
|
virtual TRelation* get_relation() const {return (TRelation*)_rel;}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -88,24 +82,26 @@ inline TClifo_application& app() { return (TClifo_application&)main_app(); }
|
|||||||
bool TClifo_application::protected_record(TRectype &rec)
|
bool TClifo_application::protected_record(TRectype &rec)
|
||||||
{
|
{
|
||||||
if (!_has_cg)
|
if (!_has_cg)
|
||||||
return FALSE;
|
return false;
|
||||||
TMask* m = get_mask(MODE_MOD);
|
|
||||||
const TString16 tipocf(m->get(F_TIPOCF));
|
|
||||||
const long codice = atol(m->get(F_CODCF));
|
|
||||||
TLocalisamfile mov(LF_MOV);
|
|
||||||
|
|
||||||
mov.setkey(3);
|
const TMask& m = *get_mask(MODE_MOD);
|
||||||
mov.curr().put(MOV_TIPO, tipocf);
|
const char tipocf = m.get(F_TIPOCF)[0];
|
||||||
mov.curr().put(MOV_CODCF, codice);
|
const long codice = m.get_long(F_CODCF);
|
||||||
mov.read();
|
|
||||||
return tipocf == mov.get(MOV_TIPO) && codice == atol(mov.get(MOV_CODCF));
|
TLocalisamfile mov(LF_MOV); mov.setkey(3);
|
||||||
|
TRectype& head = mov.curr();
|
||||||
|
head.put(MOV_TIPO, tipocf);
|
||||||
|
head.put(MOV_CODCF, codice);
|
||||||
|
const int err = mov.read(_isgteq);
|
||||||
|
return err == NOERR && tipocf == head.get_char(MOV_TIPO)
|
||||||
|
&& codice == head.get_long(MOV_CODCF);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TClifo_application::get_next_key(TToken_string& key)
|
bool TClifo_application::get_next_key(TToken_string& key)
|
||||||
{
|
{
|
||||||
TLocalisamfile& clifo = _rel->lfile() ;
|
TLocalisamfile& clifo = _rel->lfile();
|
||||||
long codcf = 1L ;
|
long codcf = 1L;
|
||||||
const TString tipo(_msk->get(F_TIPOCF)) ;
|
const TString& tipo = _msk->get(F_TIPOCF);
|
||||||
|
|
||||||
if (!clifo.empty())
|
if (!clifo.empty())
|
||||||
{
|
{
|
||||||
@ -128,12 +124,12 @@ bool TClifo_application::get_next_key(TToken_string& key)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
key.format("%d|%s|%d|%ld", F_TIPOCF, (const char*) tipo, F_CODCF, codcf);
|
key.format("%d|%s|%d|%ld", F_TIPOCF, (const char*) tipo, F_CODCF, codcf);
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
HIDDEN bool no_dup_fis(TMask_field& f, KEY key)
|
HIDDEN bool no_dup_fis(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
bool ok = TRUE;
|
bool ok = true;
|
||||||
|
|
||||||
TMask& msk = f.mask() ;
|
TMask& msk = f.mask() ;
|
||||||
if (msk.query_mode() || !f.to_check(key))
|
if (msk.query_mode() || !f.to_check(key))
|
||||||
@ -166,42 +162,66 @@ HIDDEN bool no_dup_fis(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
HIDDEN bool no_dup_iva(TMask_field& f, KEY key)
|
HIDDEN bool no_dup_iva(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
bool ok = TRUE;
|
bool ok = true;
|
||||||
|
|
||||||
TMask& msk = f.mask() ;
|
TMask& msk = f.mask() ;
|
||||||
if (msk.query_mode() || !f.to_check(key))
|
if (msk.query_mode() || !f.to_check(key))
|
||||||
return ok;
|
return ok;
|
||||||
|
|
||||||
TLocalisamfile& clifo = app().get_relation()->lfile(LF_CLIFO) ;
|
if (!f.empty())
|
||||||
if (f.get().not_empty() && !clifo.empty() )
|
|
||||||
{
|
{
|
||||||
clifo.zero() ;
|
TLocalisamfile clifo(LF_CLIFO) ;
|
||||||
const char t1 = msk.get(F_TIPOCF)[0];
|
clifo.put(CLI_TIPOCF, msk.get(F_TIPOCF)) ;
|
||||||
|
|
||||||
clifo.put(CLI_TIPOCF, t1) ;
|
|
||||||
clifo.put(CLI_STATOPAIV, msk.get(F_STATOPAIV)) ;
|
clifo.put(CLI_STATOPAIV, msk.get(F_STATOPAIV)) ;
|
||||||
clifo.put(CLI_PAIV, f.get()) ;
|
clifo.put(CLI_PAIV, f.get()) ;
|
||||||
clifo.setkey(5) ;
|
clifo.setkey(5) ;
|
||||||
clifo.read() ;
|
const int err = clifo.read() ;
|
||||||
clifo.setkey(1) ;
|
if (err == NOERR)
|
||||||
const char t = clifo.get_char(CLI_TIPOCF);
|
|
||||||
const long s = clifo.get_long(CLI_CODCF);
|
|
||||||
const long s1 = msk.get_long(F_CODCF);
|
|
||||||
|
|
||||||
if (clifo.good() && (t1 != t || s1 != s))
|
|
||||||
{
|
{
|
||||||
ok = f.error_box(FR("Partita iva gia' utilizzata per il codice %c/%ld"
|
const long s = clifo.get_long(CLI_CODCF);
|
||||||
"\nsenza avere indicato il valore 4 nell'inserimento in allegato"), t, s);
|
const long s1 = msk.get_long(F_CODCF);
|
||||||
|
if (s1 != s)
|
||||||
|
ok = f.error_box(FR("Partita IVA gia' utilizzata per il codice %ld"
|
||||||
|
"\nsenza avere indicato il valore 4 nell'inserimento in allegato"), s);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Controlla la presenza di Codice Fiscale e/o Partita IVA
|
||||||
|
HIDDEN bool almeno_cf_o_pi(TMask_field& f)
|
||||||
|
{
|
||||||
|
bool ok = true;
|
||||||
|
if (f.empty())
|
||||||
|
{
|
||||||
|
const TMask& m = f.mask();
|
||||||
|
const TString& stato = m.get(F_STATOPAIV);
|
||||||
|
if (stato.blank() || stato == "IT") // Se sono un italiano ...
|
||||||
|
{
|
||||||
|
const bool occas = m.get_bool(F_OCCASIONALE);
|
||||||
|
const int alleg = m.get_int(F_ALLEG);
|
||||||
|
if (!occas && (alleg == 0 || alleg == 6)) // ... e non sono occasionale
|
||||||
|
{
|
||||||
|
const TEdit_field& cofi = m.efield(F_COFI);
|
||||||
|
if (cofi.empty()) // Dal 2007 serve il codice fiscale
|
||||||
|
ok = cofi.error_box(TR("Codice fiscale obbligatorio per residenti in Italia"));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Se NON sono privato (alleg!=6), serve partita IVA
|
||||||
|
const TEdit_field& paiv = m.efield(F_PAIV);
|
||||||
|
if (alleg != 6 && paiv.empty())
|
||||||
|
ok = paiv.error_box(TR("E' necessario specificare la partita IVA per i non privati"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
HIDDEN bool cofi_handler(TMask_field& f, KEY key)
|
HIDDEN bool cofi_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
bool ok = TRUE;
|
bool ok = true;
|
||||||
|
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
if (key == K_ENTER && !f.dirty() && !m.query_mode())
|
if (key == K_ENTER && !f.dirty() && !m.query_mode())
|
||||||
@ -212,11 +232,16 @@ HIDDEN bool cofi_handler(TMask_field& f, KEY key)
|
|||||||
if (key == K_TAB)
|
if (key == K_TAB)
|
||||||
{
|
{
|
||||||
const TString& s1 = f.get();
|
const TString& s1 = f.get();
|
||||||
if (s1.not_empty())
|
if (s1.full())
|
||||||
m.set(F_TIPOPERS, isdigit(s1[0]) ? "G" : "F");
|
m.set(F_TIPOPERS, isdigit(s1[0]) ? "G" : "F");
|
||||||
}
|
}
|
||||||
if (m.get(F_ALLEG) != "4")
|
const int alleg = m.get_int(F_ALLEG);
|
||||||
|
if (alleg != 4)
|
||||||
|
{
|
||||||
ok = no_dup_fis(f, key);
|
ok = no_dup_fis(f, key);
|
||||||
|
if (ok)
|
||||||
|
ok = almeno_cf_o_pi(f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
@ -224,14 +249,25 @@ HIDDEN bool cofi_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
HIDDEN bool paiv_handler(TMask_field& f, KEY key)
|
HIDDEN bool paiv_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
bool ok = TRUE;
|
bool ok = true;
|
||||||
const TMask& m = f.mask();
|
const TMask& m = f.mask();
|
||||||
|
|
||||||
if (key == K_ENTER && !f.dirty() && !m.query_mode())
|
if (key == K_ENTER && !m.query_mode())
|
||||||
ok = ((TEdit_field&)f).validate(key);
|
{
|
||||||
|
if (!f.dirty())
|
||||||
if (ok && f.to_check(key) && m.get(F_ALLEG) != "4")
|
ok = ((TEdit_field&)f).validate(key);
|
||||||
ok = no_dup_iva(f, key);
|
|
||||||
|
if (ok)
|
||||||
|
{
|
||||||
|
const int alleg = m.get_int(F_ALLEG);
|
||||||
|
if (alleg != 4)
|
||||||
|
{
|
||||||
|
ok = no_dup_iva(f, key);
|
||||||
|
if (ok)
|
||||||
|
ok = almeno_cf_o_pi(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
@ -241,7 +277,7 @@ bool TClifo_application::tipocf_handler(TMask_field& f, KEY key)
|
|||||||
if (key == K_TAB && f.focusdirty())
|
if (key == K_TAB && f.focusdirty())
|
||||||
app().update_navigation_bar();
|
app().update_navigation_bar();
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TClifo_application::tipo_handler(TMask_field& f, KEY key)
|
bool TClifo_application::tipo_handler(TMask_field& f, KEY key)
|
||||||
@ -250,28 +286,28 @@ bool TClifo_application::tipo_handler(TMask_field& f, KEY key)
|
|||||||
const bool fis = f.get() == "F";
|
const bool fis = f.get() == "F";
|
||||||
m.show(-5, app()._lbcn && fis);
|
m.show(-5, app()._lbcn && fis);
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TClifo_application::percip_handler(TMask_field& f, KEY key)
|
bool TClifo_application::percip_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
|
|
||||||
if (f.to_check(key) && m.get(F_CODANAGPER).not_empty())
|
if (f.to_check(key) && !m.field(F_CODANAGPER).empty())
|
||||||
{
|
{
|
||||||
const TRectype& anag = m.efield(F_CODANAGPER).browse()->cursor()->file().curr();
|
const TRectype& anag = m.efield(F_CODANAGPER).browse()->cursor()->file().curr();
|
||||||
TString80 c(m.get(F_COFI)), p(m.get(F_PAIV));
|
const TString& c = m.get(F_COFI), p = m.get(F_PAIV);
|
||||||
|
|
||||||
if ((c.not_empty() && c != anag.get(ANA_COFI)) ||
|
if ((c.full() && c != anag.get(ANA_COFI)) ||
|
||||||
(p.not_empty() && p != anag.get(ANA_PAIV)))
|
(p.full() && p != anag.get(ANA_PAIV)))
|
||||||
return error_box(TR("Percipiente non corretto: codice fiscale o partita IVA diversa"));
|
return error_box(TR("Percipiente non corretto: codice fiscale o partita IVA diversa"));
|
||||||
|
|
||||||
const TString r(anag.get(ANA_RAGSOC));
|
const TString& r = anag.get(ANA_RAGSOC);
|
||||||
if (key == K_TAB && m.get(F_RAGSOC).empty() &&
|
if (key == K_TAB && m.field(F_RAGSOC).empty() &&
|
||||||
yesno_box(FR("Ragione sociale mancante: assumo %s"), (const char*)r))
|
yesno_box(FR("Ragione sociale mancante: assumo %s"), (const char*)r))
|
||||||
{
|
{
|
||||||
m.set(F_RAGSOC, r.left(30), TRUE);
|
m.set(F_RAGSOC, r.left(30), true);
|
||||||
m.set(F_RAGSOCA, r.mid(30), TRUE);
|
m.set(F_RAGSOCA, r.mid(30), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m.get(F_INDCF).empty()) m.set(F_INDCF, anag.get(ANA_INDRES));
|
if (m.get(F_INDCF).empty()) m.set(F_INDCF, anag.get(ANA_INDRES));
|
||||||
@ -279,8 +315,8 @@ bool TClifo_application::percip_handler(TMask_field& f, KEY key)
|
|||||||
if (m.get(F_CAPCF).empty()) m.set(F_CAPCF, anag.get(ANA_CAPRES));
|
if (m.get(F_CAPCF).empty()) m.set(F_CAPCF, anag.get(ANA_CAPRES));
|
||||||
if (m.get(F_COMCF).empty())
|
if (m.get(F_COMCF).empty())
|
||||||
{
|
{
|
||||||
m.set(F_STATOCF, anag.get(ANA_STATORES), TRUE);
|
m.set(F_STATOCF, anag.get(ANA_STATORES), true);
|
||||||
m.set(F_COMCF, anag.get(ANA_COMRES), TRUE);
|
m.set(F_COMCF, anag.get(ANA_COMRES), true);
|
||||||
}
|
}
|
||||||
if (c.empty()) m.set(F_COFI, anag.get(ANA_COFI));
|
if (c.empty()) m.set(F_COFI, anag.get(ANA_COFI));
|
||||||
if (p.empty()) m.set(F_PAIV, anag.get(ANA_PAIV));
|
if (p.empty()) m.set(F_PAIV, anag.get(ANA_PAIV));
|
||||||
@ -296,18 +332,16 @@ bool TClifo_application::percip_handler(TMask_field& f, KEY key)
|
|||||||
if (m.get(F_DATANASC).empty()) m.set(F_DATANASC, fis.get(ANF_DATANASC));
|
if (m.get(F_DATANASC).empty()) m.set(F_DATANASC, fis.get(ANF_DATANASC));
|
||||||
if (m.get(F_COMNASC).empty())
|
if (m.get(F_COMNASC).empty())
|
||||||
{
|
{
|
||||||
m.set(F_STATONASC, fis.get(ANF_STATONASC), TRUE);
|
m.set(F_STATONASC, fis.get(ANF_STATONASC), true);
|
||||||
m.set(F_COMNASC, fis.get(ANF_COMNASC), TRUE);
|
m.set(F_COMNASC, fis.get(ANF_COMNASC), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool TClifo_application::email_handler(TMask_field& f, KEY k)
|
bool TClifo_application::email_handler(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (k == K_SPACE)
|
if (k == K_SPACE)
|
||||||
@ -315,50 +349,46 @@ bool TClifo_application::email_handler(TMask_field& f, KEY k)
|
|||||||
TMail_message msg(f.mask().get(F_MAIL));
|
TMail_message msg(f.mask().get(F_MAIL));
|
||||||
msg.send();
|
msg.send();
|
||||||
}
|
}
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TClifo_application::rsoc_handler(TMask_field& f, KEY k)
|
bool TClifo_application::rsoc_handler(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (k == K_TAB && f.focusdirty())
|
if (k == K_TAB && f.focusdirty())
|
||||||
{
|
{
|
||||||
TMask & m = f.mask();
|
TMask& m = f.mask();
|
||||||
|
|
||||||
if (m.query_mode() && m.key_valid(2) && app().find(2))
|
if (m.query_mode() && m.key_valid(2) && app().find(2))
|
||||||
{
|
{
|
||||||
f.set_focusdirty(FALSE);
|
f.set_focusdirty(false);
|
||||||
m.stop_run(K_AUTO_ENTER);
|
m.stop_run(K_AUTO_ENTER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
HIDDEN bool alleg_handler(TMask_field& f, KEY key)
|
HIDDEN bool alleg_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_ENTER)
|
if (f.to_check(key, true))
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
const int tipoall = atoi(f.get());
|
const int tipoall = atoi(f.get());
|
||||||
|
|
||||||
if (m.get_bool(F_OCCASIONALE))
|
if (key == K_ENTER)
|
||||||
|
{
|
||||||
|
if (m.get_bool(F_OCCASIONALE))
|
||||||
|
{
|
||||||
|
if (tipoall != 2 && tipoall != 5 && tipoall != 6)
|
||||||
|
return f.error_box(TR("Tipo allegato non valido per gli occasionali"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (tipoall == 2)
|
||||||
|
return f.error_box(TR("Tipo allegato non valido per i non occasionali"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (tipoall != 2 && tipoall != 6)
|
|
||||||
return f.error_box("Tipo allegato %d errato per gli occasionali", tipoall);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (tipoall == 2)
|
|
||||||
return f.error_box("Tipo allegato %d errato per i non occasionali", tipoall);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
if (f.to_check(key, TRUE))
|
|
||||||
{
|
|
||||||
TMask& m = f.mask();
|
|
||||||
const int tipoall = atoi(f.get());
|
|
||||||
|
|
||||||
m.field(F_COMCF).check_type(tipoall == 6 ? CHECK_REQUIRED : CHECK_NORMAL);
|
m.field(F_COMCF).check_type(tipoall == 6 ? CHECK_REQUIRED : CHECK_NORMAL);
|
||||||
if (tipoall == 0 || tipoall == 1 || tipoall == 4 || tipoall == 6)
|
if (tipoall == 0 || tipoall == 1 || tipoall == 4 || tipoall == 6)
|
||||||
m.enable(F_CODALLEG);
|
m.enable(F_CODALLEG);
|
||||||
@ -366,47 +396,43 @@ HIDDEN bool alleg_handler(TMask_field& f, KEY key)
|
|||||||
{
|
{
|
||||||
m.disable(F_CODALLEG);
|
m.disable(F_CODALLEG);
|
||||||
m.reset(F_CODALLEG);
|
m.reset(F_CODALLEG);
|
||||||
m.reset(F_RAGSOCALLEG);
|
|
||||||
}
|
}
|
||||||
if (tipoall < 6)
|
if (tipoall == 2)
|
||||||
m.set(F_OCCASIONALE, (tipoall == 2) ? "X" : " ");
|
m.set(F_OCCASIONALE, "X");
|
||||||
m.field(F_COFI).set_dirty(TRUE);
|
m.field(F_COFI).set_dirty(true);
|
||||||
m.field(F_PAIV).set_dirty(TRUE);
|
m.field(F_PAIV).set_dirty(true);
|
||||||
}
|
}
|
||||||
return TRUE;
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
HIDDEN bool codalleg_handler(TMask_field& f, KEY key)
|
HIDDEN bool codalleg_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (f.to_check(key))
|
if (f.to_check(key) && !f.empty())
|
||||||
{
|
{
|
||||||
const TString16 cod(f.get());
|
TMask& m = f.mask();
|
||||||
|
const TString& cod = f.get();
|
||||||
|
if (cod == m.get(F_CODCF))
|
||||||
|
return error_box(TR("Il codice per allegato coincide con il codice anagrafico"));
|
||||||
|
|
||||||
|
const char tipo = m.get(F_TIPOCF)[0];
|
||||||
|
|
||||||
if (cod.not_empty())
|
TString16 key; key.format("%c|%s", tipo, (const char*)cod);
|
||||||
{
|
const TRectype& clifo = cache().get(LF_CLIFO, key);
|
||||||
TMask& m = f.mask();
|
if (clifo.empty())
|
||||||
if (cod == m.get(F_CODCF))
|
return false;
|
||||||
return error_box(TR("Il codice per allegato coincide con il codice anagrafico"));
|
|
||||||
|
if (clifo.get(CLI_CODALLEG).full())
|
||||||
const char tipo = m.get(F_TIPOCF)[0];
|
return error_box(TR("Codice non utilizzabile: contiene a sua volta un codice per allegato"));
|
||||||
|
|
||||||
TString16 key; key.format("%c|%s", tipo, (const char *) cod);
|
if (clifo.get(CLI_PAIV).empty())
|
||||||
const TRectype & clifo = cache().get(LF_CLIFO, key);
|
return error_box(TR("Codice non utilizzabile: privo di partita IVA"));
|
||||||
if (clifo.empty())
|
|
||||||
return FALSE;
|
const int tipoall = clifo.get_int(CLI_ALLEG);
|
||||||
|
if (tipoall != 0 && tipoall != 1 && tipoall != 4)
|
||||||
if (clifo.get(CLI_CODALLEG).not_empty())
|
return error_box(TR("Codice non utilizzabile: codice inserimento allegato non corretto"));
|
||||||
return error_box(TR("Codice non utilizzabile: contiene a sua volta un codice per allegato"));
|
|
||||||
|
|
||||||
if (clifo.get(CLI_PAIV).empty())
|
|
||||||
return error_box(TR("Codice non utilizzabile: privo di partita IVA"));
|
|
||||||
|
|
||||||
const TString& tipoall = clifo.get(CLI_ALLEG);
|
|
||||||
if (tipoall.not_empty() && tipoall != "1" && tipoall != "4")
|
|
||||||
return error_box(TR("Codice non utilizzabile: codice inserimento allegato non corretto"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TClifo_application::on_config_change()
|
void TClifo_application::on_config_change()
|
||||||
@ -503,7 +529,7 @@ int TClifo_application::read(TMask& m)
|
|||||||
riga.add(rec.get(IND_PFAX));
|
riga.add(rec.get(IND_PFAX));
|
||||||
riga.add(rec.get(IND_FAX));
|
riga.add(rec.get(IND_FAX));
|
||||||
riga.add(rec.get(IND_IVARID));
|
riga.add(rec.get(IND_IVARID));
|
||||||
TString16 key;
|
TString8 key;
|
||||||
key << rec.get(IND_STATO);
|
key << rec.get(IND_STATO);
|
||||||
key << '|' << rec.get(IND_COM);
|
key << '|' << rec.get(IND_COM);
|
||||||
const TRectype& com = cache().get(LF_COMUNI, key);
|
const TRectype& com = cache().get(LF_COMUNI, key);
|
||||||
@ -692,7 +718,7 @@ void TClifo_application::indsp_pack()
|
|||||||
{
|
{
|
||||||
TToken_string& riga=(TToken_string&)rows[i];
|
TToken_string& riga=(TToken_string&)rows[i];
|
||||||
if (riga.empty_items())
|
if (riga.empty_items())
|
||||||
rows.destroy(i,FALSE);
|
rows.destroy(i,false);
|
||||||
}
|
}
|
||||||
rows.pack();
|
rows.pack();
|
||||||
}
|
}
|
||||||
@ -818,7 +844,7 @@ bool TClifo_application::effetti_notify(TSheet_field& pnae, int r, KEY key)
|
|||||||
int mass_rig = mass_len / 11; // Numero di periodi ivi salvabili
|
int mass_rig = mass_len / 11; // Numero di periodi ivi salvabili
|
||||||
return pnae.items() < mass_rig; // Non accettare righe che non si possono salvare
|
return pnae.items() < mass_rig; // Non accettare righe che non si possono salvare
|
||||||
}
|
}
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TClifo_application::user_create() // initvar e arrmask
|
bool TClifo_application::user_create() // initvar e arrmask
|
||||||
@ -828,7 +854,6 @@ bool TClifo_application::user_create() // initvar e arrmask
|
|||||||
_has_cg = has_module(CGAUT, CHK_DONGLE);
|
_has_cg = has_module(CGAUT, CHK_DONGLE);
|
||||||
_rel = new TClifoVI;
|
_rel = new TClifoVI;
|
||||||
|
|
||||||
|
|
||||||
_msk = new TMask("cg0200a") ;
|
_msk = new TMask("cg0200a") ;
|
||||||
|
|
||||||
_msk->set_handler(F_TIPOCF, tipocf_handler);
|
_msk->set_handler(F_TIPOCF, tipocf_handler);
|
||||||
@ -850,14 +875,14 @@ bool TClifo_application::user_create() // initvar e arrmask
|
|||||||
TConfig config(CONFIG_STUDIO);
|
TConfig config(CONFIG_STUDIO);
|
||||||
_savenew = !config.get_bool("Cg02SN");
|
_savenew = !config.get_bool("Cg02SN");
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TClifo_application::user_destroy() // releasev e arrmask
|
bool TClifo_application::user_destroy() // releasev e arrmask
|
||||||
{
|
{
|
||||||
delete _msk;
|
delete _msk;
|
||||||
delete _rel;
|
delete _rel;
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int cg0200(int argc, char* argv[])
|
int cg0200(int argc, char* argv[])
|
||||||
|
@ -132,10 +132,11 @@
|
|||||||
#define F_CODVETT1 217
|
#define F_CODVETT1 217
|
||||||
#define F_CODVETT2 218
|
#define F_CODVETT2 218
|
||||||
#define F_CODVETT3 219
|
#define F_CODVETT3 219
|
||||||
|
#define F_DESTACF 224
|
||||||
#define F_CODSPED1 225
|
#define F_CODSPED1 225
|
||||||
#define F_CODSPED2 226
|
#define F_CODSPED2 226
|
||||||
#define F_RAGSOCALLEG 220
|
#define F_RAGSOCALLEG 228
|
||||||
#define F_DESTACF 224
|
#define F_DESTACF 229
|
||||||
#define F_CODDEP 230
|
#define F_CODDEP 230
|
||||||
#define F_RAGGEFF 232
|
#define F_RAGGEFF 232
|
||||||
#define F_NUMCC 233
|
#define F_NUMCC 233
|
||||||
|
@ -140,7 +140,7 @@ BEGIN
|
|||||||
DISPLAY "Partita IVA@11" PAIV
|
DISPLAY "Partita IVA@11" PAIV
|
||||||
COPY OUTPUT F_CODCF
|
COPY OUTPUT F_CODCF
|
||||||
HELP "Codice fiscale del cliente/fornitore"
|
HELP "Codice fiscale del cliente/fornitore"
|
||||||
VALIDATE CF_FUNC F_STATOPAIV
|
VALIDATE CF_FUNC F_STATOPAIV
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_PAIV 12
|
STRING F_PAIV 12
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
// cg0500.cpp - Tabella causali
|
// cg0500.cpp - Tabella causali
|
||||||
|
|
||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <config.h>
|
|
||||||
#include <msksheet.h>
|
#include <msksheet.h>
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <relapp.h>
|
#include <relapp.h>
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
// --------------------------------------------------------------
|
// --------------------------------------------------------------
|
||||||
// fv: cg0 -5 <tab>: gestione maschere contabilita'
|
// fv: cg0 -5 <tab>: gestione maschere contabilita'
|
||||||
// --------------------------------------------------------------
|
// --------------------------------------------------------------
|
||||||
|
|
||||||
#include <tabapp.h>
|
|
||||||
#include <saldi.h>
|
#include <saldi.h>
|
||||||
#include <defmask.h>
|
|
||||||
#include <sheet.h>
|
#include <sheet.h>
|
||||||
|
#include <tabapp.h>
|
||||||
|
|
||||||
#include "../ba/batbesc.h"
|
#include "../ba/batbesc.h"
|
||||||
#include "cglib01.h"
|
#include "cglib01.h"
|
||||||
|
|
||||||
|
119
cg/cg1300.cpp
119
cg/cg1300.cpp
@ -1,15 +1,6 @@
|
|||||||
//********************************
|
//********************************
|
||||||
//* Aggiornamento Tipo Attivita' *
|
//* Aggiornamento Tipo Attivita' *
|
||||||
//********************************
|
//********************************
|
||||||
#include <applicat.h>
|
|
||||||
#include <mask.h>
|
|
||||||
#include <relation.h>
|
|
||||||
#include <tabutil.h>
|
|
||||||
#include <progind.h>
|
|
||||||
|
|
||||||
#include <mov.h>
|
|
||||||
#include <rmoviva.h>
|
|
||||||
|
|
||||||
#include "cg1.h"
|
#include "cg1.h"
|
||||||
#include "cg1301.h"
|
#include "cg1301.h"
|
||||||
#include "cg1302.h"
|
#include "cg1302.h"
|
||||||
@ -19,16 +10,19 @@
|
|||||||
#include "cg1306.h"
|
#include "cg1306.h"
|
||||||
#include "cg1307.h"
|
#include "cg1307.h"
|
||||||
#include "cg1308.h"
|
#include "cg1308.h"
|
||||||
|
#include "cg1309.h"
|
||||||
#include "cglib01.h"
|
#include "cglib01.h"
|
||||||
|
|
||||||
|
#include <applicat.h>
|
||||||
|
#include <mask.h>
|
||||||
|
#include <progind.h>
|
||||||
|
|
||||||
|
#include <mov.h>
|
||||||
|
|
||||||
|
|
||||||
class TAgg_attiv : public TSkeleton_application
|
class TAgg_attiv : public TSkeleton_application
|
||||||
{
|
{
|
||||||
TLocalisamfile* _pcon,* _attiv;
|
|
||||||
TTable* _reg;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool create();
|
|
||||||
virtual bool destroy();
|
|
||||||
virtual void main_loop();
|
virtual void main_loop();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -37,24 +31,6 @@ public:
|
|||||||
|
|
||||||
// HIDDEN TAgg_attiv& app() { return (TAgg_attiv&)main_app(); }
|
// HIDDEN TAgg_attiv& app() { return (TAgg_attiv&)main_app(); }
|
||||||
|
|
||||||
bool TAgg_attiv::create()
|
|
||||||
{
|
|
||||||
_pcon = new TLocalisamfile(LF_PCON);
|
|
||||||
_attiv = new TLocalisamfile(LF_ATTIV);
|
|
||||||
_reg = new TTable("REG");
|
|
||||||
|
|
||||||
return TSkeleton_application::create();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TAgg_attiv::destroy()
|
|
||||||
{
|
|
||||||
delete _pcon;
|
|
||||||
delete _attiv;
|
|
||||||
delete _reg;
|
|
||||||
|
|
||||||
return TSkeleton_application::destroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
void TAgg_attiv::main_loop()
|
void TAgg_attiv::main_loop()
|
||||||
{
|
{
|
||||||
TMask msk("cg1300a");
|
TMask msk("cg1300a");
|
||||||
@ -114,55 +90,58 @@ int cg1300(int argc, char* argv[])
|
|||||||
switch (toupper(*argv[2]))
|
switch (toupper(*argv[2]))
|
||||||
{
|
{
|
||||||
case 'A':
|
case 'A':
|
||||||
{
|
{
|
||||||
TAgg_attiv a;
|
TAgg_attiv a;
|
||||||
a.run(argc, argv, TR("Aggiornamento tipo attivita' su movimenti iva"));
|
a.run(argc, argv, TR("Aggiornamento tipo attivita' su movimenti iva"));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
{
|
{
|
||||||
TAgg_codatt a;
|
TAgg_codatt a;
|
||||||
a.run(argc, argv,TR("Aggiornamento codice attivita'"));
|
a.run(argc, argv,TR("Aggiornamento codice attivita'"));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'D':
|
case 'D':
|
||||||
{
|
{
|
||||||
TAgg_datacomp a;
|
TAgg_datacomp a;
|
||||||
a.run(argc, argv,TR("Aggiornamento data competenza"));
|
a.run(argc, argv,TR("Aggiornamento data competenza"));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'E':
|
case 'E':
|
||||||
{
|
{
|
||||||
TAgg_codes a;
|
TAgg_codes a;
|
||||||
a.run(argc, argv,TR("Aggiornamento codice esercizio"));
|
a.run(argc, argv,TR("Aggiornamento codice esercizio"));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'I':
|
case 'I':
|
||||||
{
|
{
|
||||||
TAgg_opintra a;
|
TAgg_opintra a;
|
||||||
a.run(argc, argv, TR("Aggiornamento flag op. intracomunitarie"));
|
a.run(argc, argv, TR("Aggiornamento flag op. intracomunitarie"));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'L':
|
||||||
|
controlla_PIVA(argc, argv); // cg1309
|
||||||
|
break;
|
||||||
case 'P':
|
case 'P':
|
||||||
{
|
{
|
||||||
TAgg_nprot a;
|
TAgg_nprot a;
|
||||||
a.run(argc, argv,TR("Rinumerazione numero di protocollo"));
|
a.run(argc, argv,TR("Rinumerazione numero di protocollo"));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'T':
|
case 'T':
|
||||||
{
|
{
|
||||||
TAgg_tconto a;
|
TAgg_tconto a;
|
||||||
a.run(argc, argv, TR("Aggiornamento tipo conto")); // cg1302
|
a.run(argc, argv, TR("Aggiornamento tipo conto")); // cg1302
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'Z':
|
case 'Z':
|
||||||
elimina_zoppi(argc, argv);
|
elimina_zoppi(argc, argv);
|
||||||
break;
|
break;
|
||||||
case 'M':
|
case 'M':
|
||||||
setta_meseliq(argc, argv);
|
setta_meseliq(argc, argv);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
11
cg/cg1300l.h
Executable file
11
cg/cg1300l.h
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#define F_TIPO 201
|
||||||
|
#define F_CLIFO 202
|
||||||
|
#define F_COFI 203
|
||||||
|
#define F_RESET 204
|
||||||
|
|
||||||
|
#define S_DIRTY 101
|
||||||
|
#define S_CODCF 102
|
||||||
|
#define S_RAGSOC 103
|
||||||
|
#define S_PAIV 104
|
||||||
|
#define S_COFI 105
|
||||||
|
#define S_ERROR 106
|
112
cg/cg1300l.uml
Executable file
112
cg/cg1300l.uml
Executable file
@ -0,0 +1,112 @@
|
|||||||
|
#include "cg1300l.h"
|
||||||
|
|
||||||
|
TOOLBAR "Toolbar" 0 -2 0 2
|
||||||
|
|
||||||
|
BUTTON F_RESET 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -13 -11 "Deselezione"
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_SAVEREC 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -23 -11 ""
|
||||||
|
PICTURE BMP_SAVEREC
|
||||||
|
PICTURE BMP_SAVERECDN
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -33 -11 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Controllo Partita IVA" 0 0 0 -3
|
||||||
|
|
||||||
|
RADIOBUTTON F_TIPO 1 28
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 0 "Tipo"
|
||||||
|
ITEM "C|Clienti"
|
||||||
|
ITEM "F|Fornitori"
|
||||||
|
FLAGS "Z"
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_COFI
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 1 "Controllo Codice Fiscale"
|
||||||
|
END
|
||||||
|
|
||||||
|
SPREADSHEET F_CLIFO 0 -1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 3 ""
|
||||||
|
ITEM "@1"
|
||||||
|
ITEM "Codice@7"
|
||||||
|
ITEM "Ragione Sociale@50"
|
||||||
|
ITEM "Partita IVA"
|
||||||
|
ITEM "Codice Fiscale@16"
|
||||||
|
ITEM "Problema riscontrato@50"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
||||||
|
|
||||||
|
PAGE "Dati" -1 -1 52 10
|
||||||
|
|
||||||
|
BOOLEAN S_DIRTY
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 0 "Modificato"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_CODCF 7
|
||||||
|
BEGIN
|
||||||
|
PROMPT 21 0 "Codice "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_RAGSOC 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_PAIV 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 3 "Partita IVA "
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_COFI 16
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Codice Fiscale "
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_USER 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -1 3 "Allinea"
|
||||||
|
END
|
||||||
|
|
||||||
|
MEMO S_ERROR 50 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 "Problema riscontrato"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -13 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_LINK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -23 -1 ""
|
||||||
|
PICTURE BMP_LINK
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -33 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
@ -8,13 +8,12 @@
|
|||||||
#include <rmoviva.h>
|
#include <rmoviva.h>
|
||||||
#include <nditte.h>
|
#include <nditte.h>
|
||||||
|
|
||||||
#include "cg1300.h"
|
|
||||||
#include "cg1302.h"
|
#include "cg1302.h"
|
||||||
#include "cglib01.h"
|
#include "cglib01.h"
|
||||||
|
|
||||||
const int TAgg_tconto::look_reg (const char* cod, int anno)
|
const int TAgg_tconto::look_reg (const char* cod, int anno)
|
||||||
{
|
{
|
||||||
TString16 codtab;
|
TString8 codtab;
|
||||||
codtab.format("%4d%-3s", anno, cod);
|
codtab.format("%4d%-3s", anno, cod);
|
||||||
int tipo_reg = cache().get("REG", codtab).get_int("I0");
|
int tipo_reg = cache().get("REG", codtab).get_int("I0");
|
||||||
return tipo_reg;
|
return tipo_reg;
|
||||||
|
@ -1,17 +1,13 @@
|
|||||||
//*****************************************************
|
//*****************************************************
|
||||||
//* Aggiornamento codice attivita' su progressivi IVA *
|
//* Aggiornamento codice attivita' su progressivi IVA *
|
||||||
//*****************************************************
|
//*****************************************************
|
||||||
#include <mask.h>
|
|
||||||
#include <progind.h>
|
|
||||||
#include <tabutil.h>
|
|
||||||
|
|
||||||
#include <mov.h>
|
|
||||||
|
|
||||||
#include "cg1300.h"
|
#include "cg1300.h"
|
||||||
#include "cg1304.h"
|
#include "cg1304.h"
|
||||||
#include "cglib01.h"
|
#include "cglib01.h"
|
||||||
|
|
||||||
// HIDDEN TAgg_codatt& app() { return (TAgg_codatt&) main_app(); }
|
#include <mask.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <tabutil.h>
|
||||||
|
|
||||||
bool TAgg_codatt::create()
|
bool TAgg_codatt::create()
|
||||||
{
|
{
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user