Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :continua la contabilizzazione cespiti


git-svn-id: svn://10.65.10.50/trunk@15962 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2008-01-08 17:08:23 +00:00
parent 9daaa15279
commit a3e5930e37
13 changed files with 877 additions and 552 deletions

View File

@ -5,11 +5,13 @@
#include <tabapp.h>
#include "ce0.h"
#include "celib.h"
#include "cetbtmc.h"
#include "cetbcac.h"
#include "cetbcce.h"
#include "cetbccb.h"
#include "cetbccc.h"
#define MIN_CAT_COM 40
#ifndef TTable_application
@ -22,7 +24,6 @@ TTable_application& app() { return (TTable_application&)main_app(); }
// TTMC_mask
///////////////////////////////////////////////////////////
class TTMC_mask : public TAutomask
{
public:
@ -46,14 +47,13 @@ bool TTMC_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
default:
break;
}
return TRUE;
return true;
}
///////////////////////////////////////////////////////////
// TCAC_mask
///////////////////////////////////////////////////////////
class TCAC_mask : public TAutomask
{
public:
@ -115,7 +115,50 @@ bool TCAC_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
default:
break;
}
return TRUE;
return true;
}
///////////////////////////////////////////////////////////
// TCCC_mask
///////////////////////////////////////////////////////////
class TCCC_mask : public TAutomask
{
public:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
TCCC_mask() : TAutomask("cetbccc") { }
virtual ~TCCC_mask() { }
};
bool TCCC_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_CODCAT_IN:
if (o.active())
{
TDitta_cespiti& dc = ditta_cespiti();
bool ok = dc.on_category_event(o, e, jolly);
if (ok)
{
if (e == fe_modify && !o.empty())
{
const TRectype& cac = dc.categoria(0, NULL, get_int(F_CODCAT_IN));
if (o.dlg() == F_CODCAT_IN)
set(F_DESCCAT, cac.get("S0"));
/*else
set(F_CODCAT_IN, cac.get("CODTAB");*/
}
if (e == fe_close && o.empty())
return error_box(TR("Č necessario specificare la categoria!"));
}
}
break;
default:
break;
}
return true;
}
///////////////////////////////////////////////////////////
@ -189,7 +232,7 @@ bool TCCE_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
default:
break;
}
return TRUE;
return true;
}
///////////////////////////////////////////////////////////
@ -207,7 +250,10 @@ protected:
virtual int rewrite(const TMask& m);
virtual bool remove();
virtual bool protected_record(TRectype& rec);
void show_hide_ccc_cat(TMask& m, const bool hide_cac);
virtual void init_query_mode(TMask& m);
virtual void init_insert_mode(TMask& m);
virtual void init_query_insert_mode(TMask& m);
virtual void init_modify_mode(TMask& m);
};
@ -223,21 +269,25 @@ TString& TCEtables::get_mask_name(TString& name) const
TMask* TCEtables::set_mask(TMask* m)
{
const TString& tab = get_tabname();
if (m == NULL)
{
if (get_tabname() == "%TMC")
if (tab == "%TMC")
m = new TTMC_mask();
else
if (get_tabname() == "%CAC")
if (tab == "%CAC")
m = new TCAC_mask();
else
if (get_tabname() == "CCE")
if (tab == "CCE")
m = new TCCE_mask();
else
{
TString name; get_mask_name(name);
m = new TMask(name);
}
if (tab == "CCC")
m = new TCCC_mask();
else
{
TString name; get_mask_name(name);
m = new TMask(name);
}
}
return TTable_application::set_mask(m);
}
@ -268,7 +318,8 @@ bool TCEtables::remove()
bool TCEtables::protected_record(TRectype& rec)
{
if (get_tabname() == "%CGR")
const TString& tab = get_tabname();
if (tab == "%CGR")
{
TTable cat("%CAT");
@ -278,7 +329,7 @@ bool TCEtables::protected_record(TRectype& rec)
return key == cat.get("CODTAB").left(2);
}
else
if (get_tabname() == "%CAT")
if (tab == "%CAT")
{
TTable cac("%CAC");
@ -293,32 +344,71 @@ bool TCEtables::protected_record(TRectype& rec)
return TTable_application::protected_record(rec);
}
void TCEtables::show_hide_ccc_cat(TMask& m, const bool hide_cac)
{
//hide_cac = nasconde i campi che mostrano i record della tabella comune %CAC
if (hide_cac)
{
m.hide(F_CODCAT_IN);
m.show(F_CODCAT);
}
else
{
m.hide(F_CODCAT);
m.show(F_CODCAT_IN);
}
}
void TCEtables::init_query_mode(TMask& m)
{
if (get_tabname() == "CCE")
const TString& tab = get_tabname();
if (tab == "CCE")
m.disable(DLG_ATTIV);
if (get_tabname() == "CCB")
if (tab == "CCB")
{
m.show(F_CODSP_CCB);
m.hide(F_CODATT_CCB);
}
}
if (tab == "CCC")
{
show_hide_ccc_cat(m, true);
}
}
void TCEtables::init_insert_mode(TMask& m)
{
const TString& tab = get_tabname();
if (tab == "CCC")
{
show_hide_ccc_cat(m, true);
}
}
void TCEtables::init_query_insert_mode(TMask& m)
{
if (get_tabname() == "CCB")
const TString& tab = get_tabname();
if (tab == "CCB")
{
m.hide(F_CODSP_CCB);
m.show(F_CODATT_CCB);
}
if (tab == "CCC")
{
show_hide_ccc_cat(m, false);
}
}
void TCEtables::init_modify_mode(TMask& m)
{
if (get_tabname() == "CCE")
const TString& tab = get_tabname();
if (tab == "CCE")
{
m.enable(DLG_ATTIV);
}
if (tab == "CCC")
{
show_hide_ccc_cat(m, true);
}
}
int ce0100(int argc, char* argv[])

View File

@ -1,5 +1,6 @@
// campi maschera ce0400a.msk
//campi maschera ce0400a.msk
//Pagina 1
#define F_DITTA 101
#define F_RAGSOC 102
#define F_ESERCORR 103
@ -9,59 +10,60 @@
#define F_SPECIECORR 107
#define F_D_GRUPPOCORR 108
#define F_D_SPECIECORR 109
#define F_DATACONS 110
#define F_ANNOTUIR 111
#define F_AMMPROP 112
#define F_COLLCOGE 200
#define F_PLUSMINUS 201
#define F_TIPOSCRIT 202
#define F_ELIMCESP 204
#define F_D_ELIMCESP 205
#define F_RIL_DIFF 206
#define F_D_RIL_DIFF 207
#define F_RIL_QUOT 208
#define F_D_RIL_QUOT 209
#define F_RIL_PLUS 210
#define F_D_RIL_PLUS 211
#define F_RIL_MIN 212
#define F_D_RIL_MIN 213
#define F_SOPR_PAS_GR 220
#define F_SOPR_PAS_CO 221
#define F_SOPR_PAS_SO 222
#define F_SOPR_PAS_D 223
#define F_DIFF_QUO_GR 224
#define F_DIFF_QUO_CO 225
#define F_DIFF_QUO_SO 226
#define F_DIFF_QUO_D 227
#define F_DIFF_FON_GR 228
#define F_DIFF_FON_CO 229
#define F_DIFF_FON_SO 230
#define F_DIFF_FON_D 231
#define F_PLUSVAL_GR 232
#define F_PLUSVAL_CO 233
#define F_PLUSVAL_SO 234
#define F_PLUSVAL_D 235
#define F_MINUSVAL_GR 236
#define F_MINUSVAL_CO 237
#define F_MINUSVAL_SO 238
#define F_MINUSVAL_D 239
#define F_VEND_CESP_GR 240
#define F_VEND_CESP_CO 241
#define F_VEND_CESP_SO 242
#define F_VEND_CESP_D 243
#define F_TIPOAMM 245
#define F_MOVDETT 246
#define F_ANNOAMM 247
//Pagina 2
//sheet elenco files personalizzati e relative righe
#define F_USER 300
#define F_USER 200
#define F_NAME_USER 101
#define F_PROMPT_USER 102
#define F_PICTURE_USER 103
#define F_SEARCH_USER 104
#define F_SEARCH_USER 104
//Pagina 3
#define F_COLLCOGE 300
#define F_PLUSMIN 301
#define F_TIPOSCRIT 302
#define F_TIPOAMM 303
#define F_MOVDETT 304
#define F_ANNOAMM 305
#define F_ELIMCESP 306
#define F_D_ELIMCESP 307
#define F_RIL_DIFF 308
#define F_D_RIL_DIFF 309
#define F_RIL_QUOT 310
#define F_D_RIL_QUOT 311
#define F_RIL_PLUS 312
#define F_D_RIL_PLUS 313
#define F_RIL_MIN 314
#define F_D_RIL_MIN 315
#define F_SOPR_PAS_GR 316
#define F_SOPR_PAS_CO 317
#define F_SOPR_PAS_SO 318
#define F_SOPR_PAS_D 319
#define F_DIFF_QUO_GR 320
#define F_DIFF_QUO_CO 321
#define F_DIFF_QUO_SO 322
#define F_DIFF_QUO_D 323
#define F_DIFF_FON_GR 324
#define F_DIFF_FON_CO 325
#define F_DIFF_FON_SO 326
#define F_DIFF_FON_D 327
#define F_PLUSVAL_GR 328
#define F_PLUSVAL_CO 329
#define F_PLUSVAL_SO 330
#define F_PLUSVAL_D 331
#define F_MINUSVAL_GR 332
#define F_MINUSVAL_CO 333
#define F_MINUSVAL_SO 334
#define F_MINUSVAL_D 335
#define F_VEND_CESP_GR 336
#define F_VEND_CESP_CO 337
#define F_VEND_CESP_SO 338
#define F_VEND_CESP_D 339

View File

@ -154,7 +154,7 @@ ENDPAGE
//-----------------------------------------------------------------------------------------------//
PAGE "Collegamento Contabilità" -1 -1 78 10
PAGE "Collegamento a Contabilita'" -1 -1 78 10
BOOLEAN F_COLLCOGE
BEGIN
@ -164,7 +164,7 @@ BEGIN
MESSAGE TRUE ENABLE,9@
END
BOOLEAN F_PLUSMINUS
BOOLEAN F_PLUSMIN
BEGIN
PROMPT 2 1 "Genera anche movimenti plus/minusvalenza"
MESSAGE TRUE ENABLE,F_RIL_PLUS|ENABLE,F_D_RIL_PLUS|ENABLE,F_RIL_MIN|ENABLE,F_D_RIL_MIN|ENABLE,F_TIPOSCRIT|"",F_TIPOSCRIT|ENABLE,F_PLUSVAL_GR|ENABLE,F_PLUSVAL_CO|ENABLE,F_PLUSVAL_SO|ENABLE,F_PLUSVAL_D|REQUIRED,F_PLUSVAL_SO|ENABLE,F_MINUSVAL_GR|ENABLE,F_MINUSVAL_CO|ENABLE,F_MINUSVAL_SO|ENABLE,F_MINUSVAL_D|REQUIRED,F_MINUSVAL_SO

View File

@ -29,13 +29,71 @@ public:
bool TTrasf_mov_ce_cg_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
/* switch (o.dlg())
switch (o.dlg())
{
case F_DATACALC:
if (e == fe_close)
{
const TDate data_fine_es = get(F_FINE_ES);
const TDate data_ini_es = get(F_INIZIO_ES);
TDate datacalc = o.get();
if (datacalc < data_ini_es)
return error_box("La data di calcolo deve essere pari o successiva alla data inizio dell'esercizio selezionato");
if (!datacalc.ok())
{
datacalc = data_fine_es;
o.set(datacalc.string());
}
if (datacalc < data_ini_es || datacalc > data_fine_es)
return error_box("La data di calcolo deve appartenere all'esercizio selezionato!");
}
break;
default: break;
}*/
}
return true;
}
//===============================================================================================
//Rectype da utilizzare per la creazione delle righe movimento contabili. Deriva da LF_RMOV ma ha..
//..3 valori in piu' (gruppo,specie,categoria) che servono per gli ordinamenti in fase di generazione..
//..movimenti contabili
class TRigamov : public TRectype
{
TString4 _spc;
int _grp, _cat;
public:
virtual int compare(const TSortable& s) const;
const TRectype& categoria() const;
TRigamov(const int grp, const TString& spc, const int cat) : TRectype(LF_RMOV) { _grp = grp; _spc = spc; _cat = cat;}
};
const TRectype& TRigamov::categoria() const
{
return ditta_cespiti().categoria(_grp, _spc, _cat, true);
}
//confrontatore di saldi_per_codice
int TRigamov::compare(const TSortable& s) const
{
int cmp = 0;
const TRigamov& sc = (const TRigamov&)s;
cmp = _grp - sc._grp;
if (cmp == 0)
{
cmp = _spc.compare(sc._spc);
if (cmp == 0)
cmp = _cat - sc._cat;
}
return cmp;
}
//===============================================================================================
//Struct che serve per avere ammortamenti per categoria (Codcat|Qamm_tot|Qperse_tot)
struct TSaldo_per_codice :public TSortable
@ -43,7 +101,7 @@ struct TSaldo_per_codice :public TSortable
TString4 _spc;
int _grp, _cat;
TString80 _idcespite;
real _qnor, _qant, _qacc, _qperse;
real _qnor, _qant, _qacc;//, _qperse;
void add(const TRectype& rec_ammce);
virtual int compare(const TSortable& s) const;
@ -51,7 +109,7 @@ struct TSaldo_per_codice :public TSortable
int compila_rmov(const int tipo, const int riga_nor, TArray& righe_mov, TLog_report& log, const int movdett) const;
int genera_righe(TArray& righe_mov, TLog_report& log, const int movdett) const;
TSaldo_per_codice(const int grp, const TString4 spc, const int cat, const char* idcespite = "")
TSaldo_per_codice(const int grp, const TString& spc, const int cat, const char* idcespite = "")
: _grp(grp),_spc(spc), _cat(cat), _idcespite(idcespite) {}
};
@ -62,12 +120,12 @@ void TSaldo_per_codice::add(const TRectype& rec_ammce)
const real qant = rec_ammce.get_real(AMMCE_QANT);
const real qacc = rec_ammce.get_real(AMMCE_QACC);
//valore totale delle qperse del cespite che trova in AMMCE
const real qperse = rec_ammce.get_real(AMMCE_QPERSE);
//const real qperse = rec_ammce.get_real(AMMCE_QPERSE);
_qnor += qnor;
_qant += qant;
_qacc += qacc;
_qperse += qperse;
// _qperse += qperse;
}
//confrontatore di saldi_per_codice
@ -112,7 +170,7 @@ int TSaldo_per_codice::compila_rmov(const int tipo, const int riga_nor, TArray&
case 1: quota = _qnor; pos = 24; break;
case 2: quota = _qant; pos = 36; break;
case 3: quota = _qacc; pos = 48; break;
case 4: quota = _qperse; pos = 0; field = "S2"; break;
// case 4: quota = _qperse; pos = 0; field = "S2"; break;
default: break;
}
if (quota <= ZERO)
@ -123,8 +181,8 @@ int TSaldo_per_codice::compila_rmov(const int tipo, const int riga_nor, TArray&
TBill zio;
if (!str2bill(stringona, pos, zio))
{
if (tipo < 4)
{
//if (tipo < 4)
//{
pos = 24;
if (tipo == 1 || !str2bill(stringona, pos, zio))
{
@ -133,14 +191,14 @@ int TSaldo_per_codice::compila_rmov(const int tipo, const int riga_nor, TArray&
log.log(2, msg);
return -1;
}
}
else
//}
/* else
{
TString msg;
msg << TR("Manca il conto per le quote perse della categoria ") << rec_cac.get("CODTAB");
log.log(2, msg);
return -1;
}
}*/
}
if (pos == 24 && riga_nor >= 0)
@ -150,22 +208,22 @@ int TSaldo_per_codice::compila_rmov(const int tipo, const int riga_nor, TArray&
return riga_nor;
}
TRectype* rmov = new TRectype(LF_RMOV);
TRigamov* rmov = new TRigamov(_grp, _spc, _cat);
rmov->put(RMV_SEZIONE, "D");
rmov->put(RMV_IMPORTO, quota);
//conto e descrizione dipendono dal livello di dettaglio stabilito nella configurazione del collegamento CG/CE
switch (movdett)
{
case 0:
case 0: //dettaglio per categoria
rmov->put(RMV_DESCR, rec_cac.get("S0"));
break;
case 1:
case 1: //dettaglio per cespite
{
const TRectype& rec_cespi = cache().get(LF_CESPI, _idcespite);
rmov->put(RMV_DESCR, rec_cespi.get(CESPI_DESC));
}
break;
case 2:
case 2: //dettaglio per cespite con sottoconto=idcespite (idcespite numerico e di 6 cifre max!)
{
const TRectype& rec_cespi = cache().get(LF_CESPI, _idcespite);
rmov->put(RMV_DESCR, rec_cespi.get(CESPI_DESC));
@ -201,7 +259,7 @@ int TSaldo_per_codice::genera_righe(TArray& righe_mov, TLog_report& log, const i
const int riga_nor = compila_rmov(1, -1, righe_mov, log, movdett);
const int riga_ant = compila_rmov(2, riga_nor, righe_mov, log, movdett);
const int riga_acc = compila_rmov(3, riga_nor, righe_mov, log, movdett);
const int riga_persa = compila_rmov(4, -1, righe_mov, log, movdett);
// const int riga_persa = compila_rmov(4, -1, righe_mov, log, movdett);
const int righe_dopo = righe_mov.items();
return righe_dopo - righe_prima; //messo qui tanto per poter compilare
@ -209,7 +267,37 @@ int TSaldo_per_codice::genera_righe(TArray& righe_mov, TLog_report& log, const i
const TRectype& TSaldo_per_codice::categoria() const
{
return ditta_cespiti().categoria(_grp, _spc, _cat);
//viene chiamato il metodo standard della ditta_cespiti con l'ultimo parametro true in modo che usi solo...
//...le categorie valide per il collegamento alla contabilita' (tabella CCC)
return ditta_cespiti().categoria(_grp, _spc, _cat, true);
}
//===============================================================================================
//TMovimentoPN_CE
class TMovimentoPN_CE : public TMovimentoPN
{
public:
TRectype& nuova_riga();
TRectype& nuova_riga(const TRectype& row);
};
TRectype& TMovimentoPN_CE::nuova_riga()
{
TRectype& riga = cg(-1);
riga.put(RMV_NUMRIG, cg_items());
riga.put(RMV_ANNOES, curr().get(MOV_ANNOES));
return riga;
}
TRectype& TMovimentoPN_CE::nuova_riga(const TRectype& row)
{
TRectype& riga = cg(-1);
riga = row;
riga.put(RMV_NUMRIG, cg_items());
riga.put(RMV_ANNOES, curr().get(MOV_ANNOES));
return riga;
}
//===============================================================================================
@ -225,7 +313,12 @@ protected:
virtual bool destroy();
void elabora();
void genera_mov_per_cat(TArray& righe_mov, const TDate& datareg, const TDate& datacomp,
const TString& codcaus, const bool definitivo);
void genera_mov_per_ces(TArray& righe_mov, const TDate& datareg, const TDate& datacomp,
const TString& codcaus, const bool definitivo);
void delete_old_movs(const TDate& ini_es);
long get_new_numreg() const;
public:
@ -256,6 +349,85 @@ void TTrasf_mov_ce_cg::delete_old_movs(const TDate& ini_es)
}
long TTrasf_mov_ce_cg::get_new_numreg() const
{
TLocalisamfile mov(LF_MOV);
mov.last();
//primo numero libero da usare come numreg
return mov.curr().get_long(MOV_NUMREG) + 1;
}
//metodo per la generazione di movimenti con righe per categoria (chiamata se movdett=0)
void TTrasf_mov_ce_cg::genera_mov_per_cat(TArray& righe_mov, const TDate& datareg, const TDate& datacomp,
const TString& codcaus, const bool definitivo)
{
//riempie i campi della testata movimento
long numreg = get_new_numreg();
TMovimentoPN_CE pn;
TRectype& head = pn.curr();
TEsercizi_contabili esc;
const int codes = esc.date2esc(datacomp);
head.put(MOV_ANNOES, codes);
head.put(MOV_NUMREG, numreg);
head.put(MOV_DATAREG, datareg);
head.put(MOV_DATACOMP, datacomp);
head.put(MOV_CODCAUS, codcaus);
if (!definitivo)
head.put(MOV_PROVVIS, 'C');
head.put(MOV_DESCR, TR("Rilevazione quote ammortamento cespiti"));
int first_row = 0;
righe_mov.add(new TRigamov(0, EMPTY_STRING, 0));
for (int i = 0; i < righe_mov.items(); i++)
{
const TRigamov& rigamov = (const TRigamov&)righe_mov[i];
// Se cambio categoria
if (i > 0 && rigamov.compare((const TRigamov&)righe_mov[i-1]) != 0)
{
TRectype& riga_fondo = pn.nuova_riga();
TImporto fondo;
for (int j = first_row; j < i; j++)
{
TImporto imp_riga(pn.cg(j).get_char(RMV_SEZIONE), pn.cg(j).get_real(RMV_IMPORTO));
fondo += imp_riga;
}
fondo.swap_section();
fondo.normalize();
riga_fondo.put(RMV_SEZIONE, fondo.sezione());
riga_fondo.put(RMV_IMPORTO, fondo.valore());
//ci vogliono gr/co/sot che stanno nella categoria in CCC
//Serve la categoria precedente, perche' in questo momento l'ha cambiata! Quindi [i-1]
const TRigamov& prev_riga_mov = (const TRigamov&)righe_mov[i-1];
const TString& stringone = prev_riga_mov.categoria().get("S1");
riga_fondo.put(RMV_GRUPPO, stringone.mid(13,3));
riga_fondo.put(RMV_CONTO, stringone.mid(16,3));
riga_fondo.put(RMV_SOTTOCONTO, stringone.mid(19,6));
//se il movimento supera le 95 righe va salvato sul file MOV, poi distrutto per poter costruirne uno nuovo..
//..con le righe di righe_mov che sono rimaste
if (pn.cg_items() > 95 || i == righe_mov.last())
{
pn.write();
pn.destroy_rows(++numreg);
}
first_row = pn.cg_items();
}
pn.nuova_riga(rigamov);
}
}
//metodo per la generazione di movimenti con righe per cespite raggruppate e pareggiate per categoria (chiamata se movdett>0)
void TTrasf_mov_ce_cg::genera_mov_per_ces(TArray& righe_mov, const TDate& datareg, const TDate& datacomp,
const TString& codcaus, const bool definitivo)
{
}
//metodo per gestire la successione degli eventi ad alto livello
void TTrasf_mov_ce_cg::elabora()
{
@ -267,10 +439,14 @@ void TTrasf_mov_ce_cg::elabora()
if (_mask->get_bool(F_KILLOLD))
delete_old_movs(ini_es);
TDate datacalc;
//ragionamenti sulle date
const TDate datareg = _mask->get_date(F_DATAREG);
const TDate datacomp = min(fine_es, datareg);
//se il trasferimento e' definitivo la data di calcolo e' quella finale dell'esercizio selezionato, senno'...
//...e' quella indicata in F_DATACALC
if (_mask->get_bool(F_PROVDEF))
TDate datacalc;
const bool definitivo = _mask->get_bool(F_PROVDEF);
if (definitivo)
datacalc = _mask->get_date(F_FINE_ES);
else
datacalc = _mask->get_date(F_DATACALC);
@ -288,6 +464,8 @@ void TTrasf_mov_ce_cg::elabora()
const int tpamm = config_ditta_ce.get_int("TPAMM");
//Tipo di calcolo da eseguire in base al dettaglio
const int movdett = config_ditta_ce.get_int("MOVDETT");
//Codice causale da mettere nei movimenti generati
const TString4 codcaus = config_ditta_ce.get("COAUQU");
//Assoc_array Categoria-QammTot-QperseTot
TAssoc_array quote_per_codice;
@ -351,16 +529,23 @@ void TTrasf_mov_ce_cg::elabora()
sld.genera_righe(righe_mov, cont_cesp_log, movdett);
}
//controllo sul numero righe dell'array (serve solo per controllo al sagace programmatore...)
const int nrighemov = righe_mov.items();
//a questo punto ha l'array con le righe movimento CG completo (righe_mov); da queste righe deve costruire..
//..uno o piu' movimenti di prima nota
/*TMovimentoPN mov;
mov.last();
//primo numero libero da usare come numreg
long numreg = mov.curr().get_long(MOV_NUMREG) + 1;*/
if (movdett == 0)
{
genera_mov_per_cat(righe_mov, datareg, datacomp, codcaus, definitivo);
}
else
{
genera_mov_per_ces(righe_mov, datareg, datacomp, codcaus, definitivo);
}
//stampa il log degli errori
TReport_book book;
book.add(cont_cesp_log);
book.preview();

View File

@ -10,5 +10,4 @@
#define F_PROVDEF 209
#define F_DATACALC 210
#define F_DATAREG 211
#define F_DATACOMP 212
#define F_KILLOLD 213
#define F_KILLOLD 212

View File

@ -137,11 +137,6 @@ BEGIN
CHECKTYPE REQUIRED
END
DATA F_DATACOMP
BEGIN
PROMPT 2 12 "Data competenza "
END
BOOLEAN F_KILLOLD
BEGIN
PROMPT 2 13 "Eliminare i movimenti provvisori cespiti"

View File

@ -219,7 +219,7 @@ bool TDitta_cespiti::legge_223_06() const
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 bool ccc) const
{
TString8 key;
if (ca >= 41)
@ -232,8 +232,17 @@ const TRectype& TDitta_cespiti::categoria(int gr, const char* sp, int ca) const
sp = _specie;
key.format("%02d%-4s%02d", gr, sp, ca);
}
const TRectype& cac = cache().get("%CAC", key);
return cac;
//se fa riferimento alla tabella CCC (tabella di ditta delle categorie collegate alla contabilita')..
if (ccc)
{
const TRectype& ccc = cache().get("CCC", key);
return ccc;
}
else //..senno' tabella standard di studio %CAC
{
const TRectype& cac = cache().get("%CAC", key);
return cac;
}
}
static TString8 _cac_filter;

View File

@ -33,7 +33,7 @@ public:
const TRectype& get_attivita() const;
int esercizio_corrente() const { return _esercizio; }
int esercizio_corrente(TDate& inies, TDate& fines) const;
const TRectype& categoria(int gr, const char* sp, int ca) const;
const TRectype& categoria(int gr, const char* sp, int ca, const bool ccc = false) const;
const TDate& data_primi_ricavi() const { return _data_primi_ricavi; }
bool rinvio_ammortamento_ai_primi_ricavi() const;

View File

@ -63,6 +63,7 @@ Item_02 = "Localizzazioni", "ce0 -0 loc", ""
Item_03 = "Impianti", "ce0 -0 cim" , ""
Item_04 = "Esercizi", "ce0 -0 cce", "F"
Item_05 = "Esercizi contabili", "cg0 -5 esc", "F"
Item_06 = "Collegamento contabilita'", "ce0 -0 ccc", "F"
[CEMENU_007]
Caption = "Stampa tabelle ditta"

View File

@ -31,29 +31,3 @@
#define GR_MAT 130
#define GR_IMMAT 131
#define GR_PLURI 132
//pagina collegamenti con la contabilta'
#define F_IMM_GR 201
#define F_IMM_CO 202
#define F_IMM_SOT 203
#define F_IMM_DES 204
#define F_FON_GR 205
#define F_FON_CO 206
#define F_FON_SOT 207
#define F_FON_DES 208
#define F_QNOR_GR 209
#define F_QNOR_CO 210
#define F_QNOR_SOT 211
#define F_QNOR_DES 212
#define F_QANT_GR 213
#define F_QANT_CO 214
#define F_QANT_SOT 215
#define F_QANT_DES 216
#define F_QACC_GR 217
#define F_QACC_CO 218
#define F_QACC_SOT 219
#define F_QACC_DES 220
#define F_QPERSE_GR 221
#define F_QPERSE_CO 222
#define F_QPERSE_SOT 223
#define F_QPERSE_DES 224

View File

@ -239,425 +239,5 @@ END
ENDPAGE
PAGE "Collegamento contabilita'" -1 -1 60 6
GROUPBOX DLG_NULL 74 9
BEGIN
PROMPT 1 1 "@bConti per attivita'"
FLAGS "R"
END
TEXT -1
BEGIN
PROMPT 15 2 "@BGruppo"
END
TEXT -1
BEGIN
PROMPT 22 2 "@BConto"
END
TEXT -1
BEGIN
PROMPT 29 2 "@BSottoconto"
END
TEXT -1
BEGIN
PROMPT 39 2 "@BDescrizione"
END
NUMBER F_IMM_GR 3
BEGIN
PROMPT 2 3 "Immobilizzo "
FIELD S1[1,3]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_IMM_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_IMM_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_IMM_CO 3
BEGIN
PROMPT 22 3 ""
FIELD S1[4,6]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&((INDBIL==1)||(INDBIL==2)))
COPY INPUT F_IMM_GR
INPUT CONTO F_IMM_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_IMM_GR
OUTPUT F_IMM_CO CONTO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_IMM_SOT 6
BEGIN
PROMPT 29 3 ""
FIELD S1[7,12]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_IMM_CO
INPUT SOTTOCONTO F_IMM_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_IMM_CO
OUTPUT F_IMM_SOT SOTTOCONTO
OUTPUT F_IMM_DES DESCR
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
STRING F_IMM_DES 50 32
BEGIN
PROMPT 39 3 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_IMM_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_IMM_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_FON_GR 3
BEGIN
PROMPT 2 4 "Fondo "
FIELD S1[13,15]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_FON_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_FON_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_FON_CO 3
BEGIN
PROMPT 22 4 ""
FIELD S1[16,18]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&((INDBIL==1)||(INDBIL==2)))
COPY INPUT F_FON_GR
INPUT CONTO F_FON_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_FON_GR
OUTPUT F_FON_CO CONTO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_FON_SOT 6
BEGIN
PROMPT 29 4 ""
FIELD S1[19,24]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_FON_CO
INPUT SOTTOCONTO F_FON_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_FON_CO
OUTPUT F_FON_SOT SOTTOCONTO
OUTPUT F_FON_DES DESCR
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
STRING F_FON_DES 50 32
BEGIN
PROMPT 39 4 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_FON_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_FON_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QNOR_GR 3
BEGIN
PROMPT 2 5 "Amm. Normali "
FIELD S1[25,27]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_QNOR_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_QNOR_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_QNOR_CO 3
BEGIN
PROMPT 22 5 ""
FIELD S1[28,30]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==3))
COPY INPUT F_QNOR_GR
INPUT CONTO F_QNOR_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QNOR_GR
OUTPUT F_QNOR_CO CONTO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_QNOR_SOT 6
BEGIN
PROMPT 29 5 ""
FIELD S1[31,36]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_QNOR_CO
INPUT SOTTOCONTO F_QNOR_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QNOR_CO
OUTPUT F_QNOR_SOT SOTTOCONTO
OUTPUT F_QNOR_DES DESCR
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
STRING F_QNOR_DES 50 32
BEGIN
PROMPT 39 5 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_QNOR_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_QNOR_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QANT_GR 3
BEGIN
PROMPT 2 6 "Amm. Anticip."
FIELD S1[37,39]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_QANT_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_QANT_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QANT_CO 3
BEGIN
PROMPT 22 6 ""
FIELD S1[40,42]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==3))
COPY INPUT F_QANT_GR
INPUT CONTO F_QANT_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QANT_GR
OUTPUT F_QANT_CO CONTO
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QANT_SOT 6
BEGIN
PROMPT 29 6 ""
FIELD S1[43,48]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_QANT_CO
INPUT SOTTOCONTO F_QANT_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QANT_CO
OUTPUT F_QANT_SOT SOTTOCONTO
OUTPUT F_QANT_DES DESCR
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
STRING F_QANT_DES 50 32
BEGIN
PROMPT 39 6 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_QANT_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_QANT_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QACC_GR 3
BEGIN
PROMPT 2 7 "Amm. Accel. "
FIELD S1[49,51]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_QACC_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_QACC_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QACC_CO 3
BEGIN
PROMPT 22 7 ""
FIELD S1[52,54]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==3))
COPY INPUT F_QACC_GR
INPUT CONTO F_QACC_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QACC_GR
OUTPUT F_QACC_CO CONTO
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QACC_SOT 6
BEGIN
PROMPT 29 7 ""
FIELD S1[55,60]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_QACC_CO
INPUT SOTTOCONTO F_QACC_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QACC_CO
OUTPUT F_QACC_SOT SOTTOCONTO
OUTPUT F_QACC_DES DESCR
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
STRING F_QACC_DES 50 32
BEGIN
PROMPT 39 7 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_QACC_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_QACC_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QPERSE_GR 3
BEGIN
PROMPT 2 8 "Quote perse "
FIELD S2[1,3]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_QPERSE_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_QPERSE_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_QPERSE_CO 3
BEGIN
PROMPT 22 8 ""
FIELD S2[4,6]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==3))
COPY INPUT F_QPERSE_GR
INPUT CONTO F_QPERSE_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QPERSE_GR
OUTPUT F_QPERSE_CO CONTO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_QPERSE_SOT 6
BEGIN
PROMPT 29 8 ""
FIELD S2[7,12]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_QPERSE_CO
INPUT SOTTOCONTO F_QPERSE_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QPERSE_CO
OUTPUT F_QPERSE_SOT SOTTOCONTO
OUTPUT F_QPERSE_DES DESCR
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
STRING F_QPERSE_DES 50 32
BEGIN
PROMPT 39 8 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_QPERSE_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_QPERSE_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
ENDPAGE
ENDMASK

32
ce/cetbccc.h Executable file
View File

@ -0,0 +1,32 @@
// campi maschera cetbccc.msk (Collegamenti Cespiti Contabilita')
#define F_CODGR 101
#define F_CODSP 102
#define F_CODCAT 103
#define F_CODCAT_IN 104
#define F_DESCGR 105
#define F_DESCSP 106
#define F_DESCCAT 107
#define F_DESCCAT_IN 108
//Pagina 1
#define F_IMM_GR 201
#define F_IMM_CO 202
#define F_IMM_SOT 203
#define F_IMM_DES 204
#define F_FON_GR 205
#define F_FON_CO 206
#define F_FON_SOT 207
#define F_FON_DES 208
#define F_QNOR_GR 209
#define F_QNOR_CO 210
#define F_QNOR_SOT 211
#define F_QNOR_DES 212
#define F_QANT_GR 213
#define F_QANT_CO 214
#define F_QANT_SOT 215
#define F_QANT_DES 216
#define F_QACC_GR 217
#define F_QACC_CO 218
#define F_QACC_SOT 219
#define F_QACC_DES 220

458
ce/cetbccc.uml Executable file
View File

@ -0,0 +1,458 @@
#include "cetbccc.h"
TOOLBAR "" 0 -2 0 2
#include <toolbar.h>
#include <deftabap.h>
ENDPAGE
PAGE "Categorie collegate CG" -1 -1 78 10
GROUPBOX DLG_NULL 75 5
BEGIN
PROMPT 1 1 "@BCategorie"
FLAGS "R"
END
NUMBER F_CODGR 2
BEGIN
PROMPT 2 2 "Gruppo "
FIELD CODTAB[1,2]
FLAGS "Z"
KEY 1
USE %CGR
INPUT CODTAB F_CODGR
DISPLAY "Codice gruppo" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODGR CODTAB
OUTPUT F_DESCGR S0
CHECKTYPE SEARCH
MESSAGE EMPTY "",F_DESCGR
END
STRING F_DESCGR 60 50
BEGIN
PROMPT 20 2 ""
FLAGS "D"
END
STRING F_CODSP 4
BEGIN
PROMPT 2 3 "Specie "
FIELD CODTAB[3,6]
FLAGS "_"
KEY 1
USE %CAT
INPUT CODTAB[1,2] F_CODGR
INPUT CODTAB[3,6] F_CODSP
DISPLAY "Codice gruppo " CODTAB[1,2]
DISPLAY "Codice specie " CODTAB[3,6]
DISPLAY "Descrizione @50" S0
OUTPUT F_CODGR CODTAB[1,2]
OUTPUT F_CODSP CODTAB[3,6]
OUTPUT F_DESCSP S0
CHECKTYPE SEARCH
MESSAGE EMPTY "",F_DESCSP
VALIDATE REQIF_FUNC 1 F_CODGR
END
STRING F_DESCSP 60 50
BEGIN
PROMPT 20 3 ""
FLAGS "D"
END
NUMBER F_CODCAT 2
BEGIN
PROMPT 2 4 "Categoria "
FIELD CODTAB[7,8]
FLAGS "UZ"
KEY 1
USE %CCC
INPUT CODTAB[1,2] F_CODGR
INPUT CODTAB[3,6] F_CODSP
INPUT CODTAB[7,8] F_CODCAT
DISPLAY "Gruppo" CODTAB[1,2]
DISPLAY "Specie" CODTAB[3,6]
DISPLAY "Categoria" CODTAB[7,8]
DISPLAY "Descrizione@50" S0
OUTPUT F_CODGR CODTAB[1,2]
OUTPUT F_CODSP CODTAB[3,6]
OUTPUT F_CODCAT CODTAB[7,8]
OUTPUT F_DESCCAT S0
CHECKTYPE REQUIRED
END
NUMBER F_CODCAT_IN 2
BEGIN
PROMPT 2 4 "Categoria "
FLAGS "BZ"
KEY 1
DRIVENBY F_CODGR
DRIVENBY F_CODSP
MESSAGE COPY,F_CODCAT
CHECKTYPE REQUIRED
END
STRING F_DESCCAT 60 50
BEGIN
PROMPT 20 4 ""
FLAGS "BD"
END
GROUPBOX DLG_NULL 74 8
BEGIN
PROMPT 1 6 "@bConti per attivita'"
FLAGS "R"
END
TEXT -1
BEGIN
PROMPT 15 7 "@BGruppo"
END
TEXT -1
BEGIN
PROMPT 22 7 "@BConto"
END
TEXT -1
BEGIN
PROMPT 29 7 "@BSottoconto"
END
TEXT -1
BEGIN
PROMPT 39 7 "@BDescrizione"
END
NUMBER F_IMM_GR 3
BEGIN
PROMPT 2 8 "Immobilizzo "
FIELD S1[1,3]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_IMM_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_IMM_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_IMM_CO 3
BEGIN
PROMPT 22 8 ""
FIELD S1[4,6]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&((INDBIL==1)||(INDBIL==2)))
COPY INPUT F_IMM_GR
INPUT CONTO F_IMM_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_IMM_GR
OUTPUT F_IMM_CO CONTO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_IMM_SOT 6
BEGIN
PROMPT 29 8 ""
FIELD S1[7,12]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_IMM_CO
INPUT SOTTOCONTO F_IMM_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_IMM_CO
OUTPUT F_IMM_SOT SOTTOCONTO
OUTPUT F_IMM_DES DESCR
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
STRING F_IMM_DES 50 32
BEGIN
PROMPT 39 8 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_IMM_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_IMM_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_FON_GR 3
BEGIN
PROMPT 2 9 "Fondo "
FIELD S1[13,15]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_FON_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_FON_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_FON_CO 3
BEGIN
PROMPT 22 9 ""
FIELD S1[16,18]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&((INDBIL==1)||(INDBIL==2)))
COPY INPUT F_FON_GR
INPUT CONTO F_FON_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_FON_GR
OUTPUT F_FON_CO CONTO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_FON_SOT 6
BEGIN
PROMPT 29 9 ""
FIELD S1[19,24]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_FON_CO
INPUT SOTTOCONTO F_FON_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_FON_CO
OUTPUT F_FON_SOT SOTTOCONTO
OUTPUT F_FON_DES DESCR
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
STRING F_FON_DES 50 32
BEGIN
PROMPT 39 9 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_FON_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_FON_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QNOR_GR 3
BEGIN
PROMPT 2 10 "Amm. Normali "
FIELD S1[25,27]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_QNOR_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_QNOR_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_QNOR_CO 3
BEGIN
PROMPT 22 10 ""
FIELD S1[28,30]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==3))
COPY INPUT F_QNOR_GR
INPUT CONTO F_QNOR_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QNOR_GR
OUTPUT F_QNOR_CO CONTO
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
NUMBER F_QNOR_SOT 6
BEGIN
PROMPT 29 10 ""
FIELD S1[31,36]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_QNOR_CO
INPUT SOTTOCONTO F_QNOR_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QNOR_CO
OUTPUT F_QNOR_SOT SOTTOCONTO
OUTPUT F_QNOR_DES DESCR
ADD RUN CG0 -0
CHECKTYPE REQUIRED
END
STRING F_QNOR_DES 50 32
BEGIN
PROMPT 39 10 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_QNOR_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_QNOR_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QANT_GR 3
BEGIN
PROMPT 2 11 "Amm. Anticip."
FIELD S1[37,39]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_QANT_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_QANT_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QANT_CO 3
BEGIN
PROMPT 22 11 ""
FIELD S1[40,42]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==3))
COPY INPUT F_QANT_GR
INPUT CONTO F_QANT_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QANT_GR
OUTPUT F_QANT_CO CONTO
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QANT_SOT 6
BEGIN
PROMPT 29 11 ""
FIELD S1[43,48]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_QANT_CO
INPUT SOTTOCONTO F_QANT_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QANT_CO
OUTPUT F_QANT_SOT SOTTOCONTO
OUTPUT F_QANT_DES DESCR
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
STRING F_QANT_DES 50 32
BEGIN
PROMPT 39 11 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_QANT_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_QANT_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QACC_GR 3
BEGIN
PROMPT 2 12 "Amm. Accel. "
FIELD S1[49,51]
FLAGS "Z"
USE LF_PCON SELECT CONTO=""
INPUT GRUPPO F_QACC_GR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_QACC_GR GRUPPO
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QACC_CO 3
BEGIN
PROMPT 22 12 ""
FIELD S1[52,54]
FLAGS "Z"
USE LF_PCON SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==3))
COPY INPUT F_QACC_GR
INPUT CONTO F_QACC_CO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Ind.Bil." INDBIL
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QACC_GR
OUTPUT F_QACC_CO CONTO
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
NUMBER F_QACC_SOT 6
BEGIN
PROMPT 29 12 ""
FIELD S1[55,60]
FLAGS "Z"
USE LF_PCON SELECT SOTTOCONTO!=""
COPY INPUT F_QACC_CO
INPUT SOTTOCONTO F_QACC_SOT
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_QACC_CO
OUTPUT F_QACC_SOT SOTTOCONTO
OUTPUT F_QACC_DES DESCR
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
STRING F_QACC_DES 50 32
BEGIN
PROMPT 39 12 ""
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_QACC_DES
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_QACC_SOT
ADD RUN CG0 -0
CHECKTYPE NORMAL
END
ENDPAGE
ENDMASK