Correzione errori

git-svn-id: svn://10.65.10.50/trunk@1626 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1995-07-21 10:12:15 +00:00
parent 43b3d42d58
commit 69029737cc
15 changed files with 14593 additions and 12316 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,157 +1,157 @@
//******************************** //********************************
//* Aggiornamento Tipo Attivita' * //* Aggiornamento Tipo Attivita' *
//******************************** //********************************
#include <applicat.h> #include <applicat.h>
#include <mask.h> #include <mask.h>
#include <relation.h> #include <relation.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include <progind.h> #include <progind.h>
#include <urldefid.h> #include <urldefid.h>
#include <prefix.h> #include <prefix.h>
#include <mov.h> #include <mov.h>
#include <rmoviva.h> #include <rmoviva.h>
#include "conto.h" #include "conto.h"
#include "cg2103.h" #include "cg2103.h"
#include "cg1301.h" #include "cg1301.h"
#include "cg1302.h" #include "cg1302.h"
#include "cg1303.h" #include "cg1303.h"
#include "cg1304.h" #include "cg1304.h"
#include "cg1.h" #include "cg1.h"
class TAgg_attiv : public TApplication class TAgg_attiv : public TApplication
{ {
TLocalisamfile* _pcon,* _attiv; TLocalisamfile* _pcon,* _attiv;
TTable* _reg; TTable* _reg;
public: public:
virtual bool create(); virtual bool create();
virtual bool destroy(); virtual bool destroy();
virtual bool menu(MENU_TAG m); virtual bool menu(MENU_TAG m);
void elabora_mov(); void elabora_mov();
TAgg_attiv() {}; TAgg_attiv() {};
virtual ~TAgg_attiv() {}; virtual ~TAgg_attiv() {};
}; };
HIDDEN TAgg_attiv& app() { return (TAgg_attiv&)main_app(); } HIDDEN TAgg_attiv& app() { return (TAgg_attiv&)main_app(); }
bool TAgg_attiv::create() bool TAgg_attiv::create()
{ {
TApplication::create(); TApplication::create();
_pcon = new TLocalisamfile(LF_PCON); _pcon = new TLocalisamfile(LF_PCON);
_attiv = new TLocalisamfile(LF_ATTIV); _attiv = new TLocalisamfile(LF_ATTIV);
_reg = new TTable("REG"); _reg = new TTable("REG");
dispatch_e_menu (BAR_ITEM(1)); dispatch_e_menu (BAR_ITEM(1));
return TRUE; return TRUE;
} }
bool TAgg_attiv::destroy() bool TAgg_attiv::destroy()
{ {
delete _pcon; delete _pcon;
delete _attiv; delete _attiv;
delete _reg; delete _reg;
return TApplication::destroy(); return TApplication::destroy();
} }
bool TAgg_attiv::menu(MENU_TAG m) bool TAgg_attiv::menu(MENU_TAG m)
{ {
TMask msk("cg1300a"); TMask msk("cg1300a");
while (msk.run() == K_ENTER) while (msk.run() == K_ENTER)
{ {
elabora_mov(); elabora_mov();
message_box("Aggiornamento completato"); message_box("Aggiornamento completato");
//return TRUE; //return TRUE;
} }
return FALSE; return FALSE;
} }
void TAgg_attiv::elabora_mov() void TAgg_attiv::elabora_mov()
{ {
TRelation rel (LF_MOV); TRelation rel (LF_MOV);
rel.add(LF_RMOVIVA, "NUMREG=NUMREG",1); rel.add(LF_RMOVIVA, "NUMREG=NUMREG",1);
TCursor cursor(&rel,"",1); TCursor cursor(&rel,"",1);
TLocalisamfile& mov = rel.lfile(); TLocalisamfile& mov = rel.lfile();
TLocalisamfile& rmoviva = rel.lfile(LF_RMOVIVA); TLocalisamfile& rmoviva = rel.lfile(LF_RMOVIVA);
long ditta = get_firm(); long ditta = get_firm();
cursor = 0L; cursor = 0L;
const long nitems = cursor.items(); const long nitems = cursor.items();
TProgind p(nitems ? nitems : 1, "Aggiornamento in corso..." , TRUE, TRUE, 70); TProgind p(nitems ? nitems : 1, "Aggiornamento in corso..." , TRUE, TRUE, 70);
for (; cursor.pos() < cursor.items(); ++cursor) for (; cursor.pos() < cursor.items(); ++cursor)
{ {
p.addstatus(1); p.addstatus(1);
const TString16 reg(mov.get(MOV_REG)); const TString16 reg(mov.get(MOV_REG));
if (reg.empty()) continue; if (reg.empty()) continue;
const int annoiva = mov.get_int(MOV_ANNOIVA); const int annoiva = mov.get_int(MOV_ANNOIVA);
TRegistro registro(reg, annoiva); TRegistro registro(reg, annoiva);
const bool att_mista = registro.attivita_mista(); const bool att_mista = registro.attivita_mista();
if (att_mista) if (att_mista)
{ {
bool ok = rel.is_first_match(LF_RMOVIVA); bool ok = rel.is_first_match(LF_RMOVIVA);
while (ok) while (ok)
{ {
const char tipo = rmoviva.get_char("TIPOC"); const char tipo = rmoviva.get_char("TIPOC");
if (tipo <= ' ') if (tipo <= ' ')
{ {
TBill c(rmoviva.get_int("GRUPPO"), rmoviva.get_int("CONTO"), rmoviva.get_long("SOTTOCONTO")); TBill c(rmoviva.get_int("GRUPPO"), rmoviva.get_int("CONTO"), rmoviva.get_long("SOTTOCONTO"));
int tipoatt = c.tipo_att(); int tipoatt = c.tipo_att();
rmoviva.put("TIPOATT", tipoatt); rmoviva.put("TIPOATT", tipoatt);
rmoviva.rewrite(); rmoviva.rewrite();
} }
ok = rel.next_match(LF_RMOVIVA); ok = rel.next_match(LF_RMOVIVA);
} }
} }
} }
} }
int cg1300(int argc, char* argv[]) int cg1300(int argc, char* argv[])
{ {
switch (*argv[2]) switch (*argv[2])
{ {
case 'A': case 'A':
{ {
TAgg_attiv a; TAgg_attiv a;
a.run(argc, argv, "Aggiornamento tipo attivita' su movimenti iva"); a.run(argc, argv, "Aggiornamento tipo attivita' su movimenti iva");
} }
break; break;
case 'I': case 'I':
{ {
TAgg_opintra a; TAgg_opintra a;
a.run(argc, argv, "Aggiornamento flag op. intracomunitarie"); a.run(argc, argv, "Aggiornamento flag op. intracomunitarie");
} }
break; break;
case 'T': case 'T':
{ {
TAgg_tconto a; TAgg_tconto a;
a.run(argc, argv, "Aggiornamento tipo conto"); a.run(argc, argv, "Aggiornamento tipo conto");
} }
break; break;
case 'P': case 'P':
{ {
TAgg_nprot a; TAgg_nprot a;
a.run(argc, argv,"Rinumerazione numero di protocollo"); a.run(argc, argv,"Rinumerazione numero di protocollo");
} }
break; break;
case 'C': case 'C':
{ {
TAgg_codatt a; TAgg_codatt a;
a.run(argc, argv,"Aggiornamento codice attivita'"); a.run(argc, argv,"Aggiornamento codice attivita'");
} }
break; break;
default: default:
break; break;
} }
return TRUE; return TRUE;
} }

View File

@ -1,30 +1,30 @@
#ifndef __CG1300_H #ifndef __CG1300_H
#define __CG1300_H #define __CG1300_H
#define F_CODDITTA 101 #define F_CODDITTA 101
#define F_RAGSOC 102 #define F_RAGSOC 102
#define F_ANNO 103 #define F_ANNO 103
#define F_REG 104 #define F_REG 104
#define F_PROT 105 #define F_PROT 105
#define F_PASS 106 #define F_PASS 106
#define F_DA 107 #define F_DA 107
#define F_A 108 #define F_A 108
#define F_DENATTV 109 #define F_DENATTV 109
#define F_DENATTN 110 #define F_DENATTN 110
#endif // __CG1300_H #endif // __CG1300_H

View File

@ -126,10 +126,11 @@ void TAgg_codatt::cancella_rec()
TTable pla("PLA"); TTable pla("PLA");
for (pla.first(); !pla.eof(); pla.next()) for (pla.first(); !pla.eof(); pla.next())
pla.remove(); pla.remove();
/***
TTable rmb("RMB"); TTable rmb("RMB");
for (rmb.first(); !rmb.eof(); rmb.next()) for (rmb.first(); !rmb.eof(); rmb.next())
rmb.remove(); rmb.remove();
***/
} }
void TAgg_codatt::aggiorna_att(const char* nome) void TAgg_codatt::aggiorna_att(const char* nome)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,524 @@
<<<<<<< cg4303.cpp
// -----------------------------------------------------------------
// Calcolo liquidazione
// part 4: casi particolari
// fv 2-2-94
// -----------------------------------------------------------------
#include "cg4300.h"
void TLiquidazione_app::add_plafond(int month, const char* codatt, int type,
real& howmuch, bool intra)
{
look_ppa(month,codatt,type);
TString att(codatt);
real r0 = _ppa_r->get_real("R0");
real r1 = _ppa_r->get_real("R1");
real r2 = _ppa_r->get_real("R2");
if (intra) r1 += howmuch;
else r0 += howmuch;
if (r2 < (r0+r1))
describe_error("Acquisti in eccesso rispetto al plafond disponibile",
att.cut(5));
_ppa_r->put("R0",r0);
_ppa_r->put("R1",r1);
_ppa->rewrite();
}
void TLiquidazione_app::zero_plafond (int month, const char* codatt)
{
for (int jj = 1; jj <= 3; jj++) // three types of plafond
{
real r;
look_ppa(month,codatt,jj,TRUE);
if (is_first_month(month))
{
r = (jj == 1 ? _p8 : (jj == 2 ? _p8b : _p9));
}
else
{
long rn = _ppa->recno();
// se non c'e' quello del mese prima c'e' poco da fare,
// si ricalcola tutto
if (!look_ppa(previous_month(month),codatt,jj))
// mazza che bella chiamata ricorsiva
{
if (_recalc != needed)
{
describe_error("Progressivi plafond non ricalcolati per "
"i mesi precedenti: possibili errori",
codatt);
}
else
{
if (!update_att(previous_month(month),codatt, FALSE))
describe_error("Progressivi plafond non ricalcolati per "
"i mesi precedenti: possibili errori",
codatt);
look_ppa(previous_month(month),codatt,jj);
}
}
r = _ppa_r->get_real("R2") -
_ppa_r->get_real("R0") -
_ppa_r->get_real("R1");
_ppa->readat(rn);
}
_ppa_r->put("R2",r);
_ppa_r->put("R0","");
_ppa_r->put("R1","");
_ppa->rewrite();
} // for tipo esenzione plafond
}
// ricalcolo dei corrispettivi
void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
{
if (_corr_arr.items() == 0) return;
// ricalcola (solo per il mese in corso!) operando sull'array
for (int i = 0; i < _corr_arr.items(); i++)
{
_CorrItem* ci = (_CorrItem*)&_corr_arr[i];
if (ci->_month != month || ci->_codatt != codatt)
continue;
real imposta = (abs(ci->_totale) * ci->_aliquota)/(ci->_aliquota + 1.00);
imposta.ceil();
if (ci->_totale.sign() < 0) imposta = -imposta;
real imponibile = ci->_totale - imposta;
// aggiusto l'IVA vendite nei plm
look_plm(month, codatt);
real ive = _plm->get_real("R0");
ive += imposta;
_plm->put("R0",ive);
_plm->rewrite();
// .. e il volume di affari nei pam
real vaf = _pam->get_real("R1");
vaf += imponibile;
_pam->put("R1", vaf);
_pam->rewrite();
// Aggiorno i luridi pim
look_pim(month, codatt, ci->_codreg, "", ci->_codiva, ci->_tipodet, TRUE);
imponibile += _pim->get_real("R0");
imposta += _pim->get_real("R1");
_pim->put("R0", imponibile);
_pim->put("R1", imposta);
_pim->rewrite();
}
}
// ricalcolo della malefica ventilazione
void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
{
if (!_isvent || _isagricolo || _isviaggio || _vend_arr.items() == 0) return;
TString att(codatt);
// 1) ricalcola i pim dei mesi dal primo al corrente se necessario
recalc rcl = _recalc;
_recalc = needed;
for (int m = 1; m < month; m++)
update_att(m,codatt, FALSE);
_recalc = rcl;
_vent_arr.destroy();
for (m = 1; m <= month; m++)
{
// aggiunge gli acquisti del mese m operando sui pim
for (_pim->first(); !_pim->eof(); _pim->next())
{
if (_year != *_pim_anno) continue;
// se e' acquisto beni per rivendita
int tipocr = atoi(*_pim_tipocr);
int mese = atoi(*_pim_mese);
int tipodet = atoi(*_pim_tipodet);
look_iva(*_pim_codiva);
// base di riparto solo se non esente, non soggetto, non imponibile
TString16 tipoiva(_iva->get("S1"));
TString16 reg = *_pim_codreg;
/*
* caso particolare SENSU Vladimiro (1995) #MI3001
* questi vengono pero' conteggiati nel totale
* acquisti per rivendita
*/
if (tipocr == 5 && tipodet == 3)
continue;
TString att(codatt);
if (tipocr == 1 && (mese == m) &&
att == (const char*)(*_pim_codatt))
{
if (tipoiva != "NS" && tipoiva != "NI" && tipoiva != "ES")
{
real lurd = _pim->get_real("R0");
lurd += _pim->get_real("R1");
real perc = _iva->get_real("R0");
TString other = _iva->get("S6");
if (!other.empty())
{
// ventila a un altro codice
look_iva(other);
perc = _iva->get_real("R0");
}
add_ventilation(perc / CENTO, lurd, *_pim_codiva, other);
}
}
}
}
// 2) calcola totale acquisti su tutte le aliquote
real totacq = 0.0;
real totven = 0.0;
for (int j = 0; j < _vent_arr.items(); j++)
{
_VentItem& vv = (_VentItem&)_vent_arr[j];
totacq += vv._totale;
}
// 3) ricalcola (solo per il mese in corso!) operando sull'array
for (int i = 0; i < _vend_arr.items(); i++)
{
_VendItem* vi = (_VendItem*)&_vend_arr[i];
if (vi->_month != month)
continue;
// questo serve solo per il prospettino di m.
totven += vi->_totale;
// 3.2) calcola percentuali di ripartizione e prepara l'affettatrice
TDistrib dst(vi->_totale,ROUND_LIRA);
for (j = 0; j < _vent_arr.items(); j++)
{
_VentItem* vv = (_VentItem*)&_vent_arr[j];
dst.add(vv->_totale/totacq);
}
// 3.3) affetta l'importo
for (j = 0; j < _vent_arr.items(); j++)
{
_VentItem* vv = (_VentItem*)&_vent_arr[j];
real imponibile = dst.get();
real div(1.0); div += vv->_aliquota;
real imposta = imponibile - (imponibile/div);
imposta.ceil(ROUND_LIRA);
imponibile -= imposta;
// aggiusto l'IVA vendite nei plm
look_plm(month, codatt);
real ive = _plm->get_real("R0");
ive += imposta;
_plm->put("R0",ive);
_plm->rewrite();
// .. e il volume di affari nei pam
real vaf = _pam->get_real("R1");
vaf += imponibile;
_pam->put("R1", vaf);
_pam->rewrite();
// Aggiorno i luridi pim
look_pim(month, codatt, vi->_codreg, "0", vv->_codiva, vi->_tipodet, TRUE);
imponibile += _pim->get_real("R0");
imposta += _pim->get_real("R1");
_pim->put("R0", imponibile);
_pim->put("R1", imposta);
_pim->put("S4", vv->_other);
// segnale per comodita'
_pim->put("B1","X");
_pim->rewrite();
}
}
// memorizza totali per il prospettino di m.
look_plm(month, codatt);
// PAM e PUM
_pam->put("R2",totacq);
_pam->put("R3",totven);
_pam->rewrite();
}
// questa serve per il rimborso secondo le
// nuove cazzonorme
class rObj : public TObject
{
public:
real _imp;
real _iva;
real _perc;
rObj() {}
virtual ~rObj() {}
};
// defines per stabilire quale cazzo di metodo piace oggi alla prassi
// ------------------------------------------------------------------
// Considera tutti i mesi del trimestre fino a quello indicato
// se lasciato indefinito usa solo il mese passato
#define OGGI_GLI_TIRA_DI_USARE_TRE_MESI
_DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
bool stliq)
{
// calcola condizioni per il diritto al rimborso infracazzuale
// chiamata soltanto per i trimestri anche se annuale
// aggiornata a normative per anno liq. > 1994
bool rimborsami = FALSE;
_DescrItem* d = NULL;
TToken_string atts(codatts);
const char* tmpatt;
TString att;
real es_ni = 0.0;
real vol_aff = 0.0;;
while ((tmpatt = atts.get()) != NULL)
{
att = tmpatt;
#ifdef OGGI_GLI_TIRA_DI_USARE_TRE_MESI
for (int m = (month == 13 ? 1 : (next_trim(month)-2)); m <= month; m++)
{
#else
int m = month;
#endif
if (!look_plm(m,att)) continue;
vol_aff += _pam->get_real("R1");
es_ni += _pum->get_real("R12");
#ifdef OGGI_GLI_TIRA_DI_USARE_TRE_MESI
}
#endif
}
// condizione 1
real prc = es_ni/vol_aff; prc.round(2);
if (stliq && !vol_aff.is_zero() && prc > MIN_PARTE_ESENTE)
{
rimborsami = TRUE;
d = new _DescrItem(RIMBORSO);
d->_f0 = TRUE;
d->_r0 = es_ni;
d->_r1 = vol_aff;
}
// ---------------------- condizione 2
// u' casinu pazzescu d'u nuiu guvernu
real vtot = 0.0;
real atot = 0.0;
real ivav = 0.0;
real ivaa = 0.0;
real alv = 0.0; // aliquota media vendite
real ala = 0.0; // aliquota media acquisti
/***********************************************************************
Sembra che sia stato annullato subito dopo che ho finito di scrivere
queste 150 righe di casino
***********************************************************************
// due array dove ficcare i totali per
// codiva in ordine di imponibile
TArray varr, aarr;
// scorri i bellissimi progressivi mensili rimborso
for (_rmb->first(); !_rmb->eof(); _rmb->next())
{
int year = atoi((const char*)_year);
int ryear = atoi((const char*)(*_rmb_anno));
int rmese = atoi((const char*)(*_rmb_mese));
if (year != ryear || (rmese < (month - 2) || rmese > month))
continue;
real imp = _rmb->get("R0");
real iva = _rmb->get("R1");
real per = _rmb->get("R2");
rObj* rb = new rObj;
rb->_imp = imp;
rb->_iva = iva;
rb->_perc = per;
TArray& arr = (tiporeg)atoi((const char*)(*_rmb_tiporeg)) == vendita ? varr : aarr;
for (int i = 0; i < arr.items(); i++)
{
rObj& robj = (rObj&)arr[i];
if (robj._imp < imp)
break;
}
arr.insert(rb, i);
// totali imponibili
if ((tiporeg)atoi((const char*)(*_rmb_tiporeg)) == vendita)
vtot += imp;
else
atot += imp;
}
// se ci sono due o piu' imponibili uguali devo
// sostituire l'imposta con la media delle aliquote
// ciclo uguale sui due array
for (int w = 0; w < 2; w++)
{
TArray& arr = w == 0 ? varr : aarr;
for (int i = 0; i < arr.items(); i++)
{
rObj& robj = (rObj&)arr[i];
real impref = robj._imp;
real perc = robj._perc;
for (int j = i+1; j < arr.items(); j++)
{
rObj& rbj = (rObj&)arr[j];
if (rbj._imp != impref)
break;
perc += rbj._perc;
}
// riaggiustesbimo
if (j > i+1)
{
// funzionerebbe comunque ma risparmiamo una
// divisione per 1
real ndiv(j-i);
perc /= ndiv;
for (; i < j; i++)
{
rObj& rbj = (rObj&)arr[i];
rbj._iva = rbj._imp * (perc/CENTO);
rbj._iva.round(ROUND_LIRA);
}
i --;
}
}
}
// 51 per cento
vtot *= PERC_IMP_RIMBORSABILE;
atot *= PERC_IMP_RIMBORSABILE;
for (w = 0; w < 2; w++)
{
TArray& arr = w == 0 ? varr : aarr;
real timp = w == 0 ? vtot : atot;
real tiva = 0.0;
for (int i = 0; i < arr.items(); i++)
{
rObj& robj = (rObj&)arr[i];
if (timp >= robj._imp)
{
tiva += robj._iva;
timp -= robj._imp;
}
else
{
real perc = timp/robj._imp;
if (!perc.is_zero())
{
real ttiv = robj._iva * perc;
ttiv.round(ROUND_LIRA);
tiva += ttiv;
}
break;
}
}
if (w == 0) ivav = tiva;
else ivaa = tiva;
}
**************************************************************************/
// scorri i bellissimi progressivi mensili
for (_pim->first(); !_pim->eof(); _pim->next())
{
int year = atoi((const char*)_year);
int ryear = atoi(*_pim_anno);
int rmese = atoi(*_pim_mese);
// B3 significa che e' acq. o vendita valido per rimb. per aliquota
if (!_pim->get_bool("B3")) continue;
#ifdef OGGI_GLI_TIRA_DI_USARE_TRE_MESI
if (year != ryear ||
(month != 13 && (rmese < (next_trim(month)-2) || rmese > month)))
continue;
#else
if (year != ryear || (month != rmese))
continue;
#endif
int tipomov = (tiporeg)_pim->get_long("I1");
real imp = _pim->get("R0");
real iva = _pim->get("R1");
// totali imponibili
if (tipomov == vendita)
{
vtot += imp;
ivav += iva;
}
else
{
atot += imp;
ivaa += iva;
}
}
// finalmente
alv = ivav/vtot; alv.round(4);
ala = ivaa/atot; ala.round(4);
// vedi condizioni
rimborsami = ala > alv;
if (rimborsami)
{
// vedi di quanto ala eccede alv; deve essere > 10%
real ecc = ((ala/alv) - real(1.0));
rimborsami = (ecc >= SOGLIA_MAGGIORE_ALIQUOTA_DEL_CAZZO_PER_AVER_DIRITTO_AL_RIMBORSO);
}
if (stliq && rimborsami)
{
if (d == NULL) d = new _DescrItem(RIMBORSO);
d->_f1 = TRUE;
d->_r2 = vtot;
d->_r3 = atot;
d->_r4 = ivav;
d->_r5 = ivaa;
d->_r6 = alv * CENTO;
d->_r7 = ala * CENTO;
}
if (rimborsami && is_month_ok_strict(month))
{
look_lim(month);
_lim->put("B2", "X");
_lim->rewrite();
}
return d;
}
=======
// ----------------------------------------------------------------- // -----------------------------------------------------------------
// Calcolo liquidazione // Calcolo liquidazione
// part 4: casi particolari // part 4: casi particolari
@ -536,3 +1057,4 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
} }
return d; return d;
} }
>>>>>>> 1.41

File diff suppressed because it is too large Load Diff

View File

@ -1,160 +1,160 @@
// //
// cg4400.h // cg4400.h
// //
#include <isam.h> #include <isam.h>
#include <printapp.h> #include <printapp.h>
#include <mask.h> #include <mask.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include <urldefid.h> #include <urldefid.h>
#include <text.h> #include <text.h>
#include <mailbox.h> #include <mailbox.h>
#include <execp.h> #include <execp.h>
#include <sheet.h> #include <sheet.h>
#include <config.h> #include <config.h>
#include <prefix.h> #include <prefix.h>
#include <progind.h> #include <progind.h>
#include <nditte.h> #include <nditte.h>
#include <anagr.h> #include <anagr.h>
#include <comuni.h> #include <comuni.h>
#include <unloc.h> #include <unloc.h>
#include <mov.h> #include <mov.h>
#include <rmoviva.h> #include <rmoviva.h>
#include <clifo.h> #include <clifo.h>
#include <occas.h> #include <occas.h>
#include <causali.h> #include <causali.h>
#include "cglib03.h" #include "cglib03.h"
#include "cglib04.h" #include "cglib04.h"
#include "conto.h" #include "conto.h"
enum messaggio { enum messaggio {
no_liquidazione, no_liquidazione,
B0_settato, B0_settato,
non_proseguire, non_proseguire,
prosegui_stampa, prosegui_stampa,
prosegui_cal_stampa prosegui_cal_stampa
}; };
class CG4400_application : public TPrintapp class CG4400_application : public TPrintapp
{ {
TCursor * _cur; TCursor * _cur;
TRelation *_rel, *_nditte; TRelation *_rel, *_nditte;
TLocalisamfile *_clifo, *_occas, *_tab, *_tabcom, *_com, *_anag, *_unloc, *_attiv, *_indlib; TLocalisamfile *_clifo, *_occas, *_tab, *_tabcom, *_com, *_anag, *_unloc, *_attiv, *_indlib;
TTable *_tabreg, *_tablbu, *_tablim, *_tabpim, *_tablia, *_tabiva; TTable *_tabreg, *_tablbu, *_tablim, *_tabpim, *_tablia, *_tabiva;
TTable *_tabpla, *_tabppa, *_tabvid; TTable *_tabpla, *_tabppa, *_tabvid;
TRigaiva_array _iva_array, _riga_rmi; TRigaiva_array _iva_array, _riga_rmi;
TTipodoc_array _doc_array; TTipodoc_array _doc_array;
TRiga_array _tot_iva_array; TRiga_array _tot_iva_array;
TBit_array _selected; TBit_array _selected;
TArray_sheet *_ditte; TArray_sheet *_ditte;
TArray _nomiditte; TArray _nomiditte;
bool _st_liq[13]; bool _st_liq[13];
bool _test; bool _test;
TRecnotype _nrec; TRecnotype _nrec;
bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri, _auto_intraf, _stampa; bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri, _auto_intraf, _stampa;
bool _corrispettivi, _liquidazione, _riep_liq, _stampa_ind_comp, _esiste_riga_iva, _stampa_cred_pre; bool _corrispettivi, _liquidazione, _riep_liq, _stampa_ind_comp, _esiste_riga_iva, _stampa_cred_pre;
bool _rif_vid, _intesta_vidi, _intesta_liq, _stampa_data_reg, _ok_vidi; bool _rif_vid, _intesta_vidi, _intesta_liq, _stampa_data_reg, _ok_vidi;
bool _sosp_imposta; bool _sosp_imposta;
char _frequiva, _tipo_riepilogativo; char _frequiva, _tipo_riepilogativo;
TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg; TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg;
TDate _u_data; TDate _u_data;
long _n_ditte, _u_stampata, _primast, __firm, _uprotivap, _ditta; long _n_ditte, _u_stampata, _primast, __firm, _uprotivap, _ditta;
long _numini, _pagine_stampate; long _numini, _pagine_stampate;
int _fino_a_mese, _tipo_reg, _tipo_stampa, _cod_un_loc; int _fino_a_mese, _tipo_reg, _tipo_stampa, _cod_un_loc;
int _annoes, _r, _stampa_width, _mese_ultima_liq, _mese_credito; int _annoes, _r, _stampa_width, _mese_ultima_liq, _mese_credito;
int _stampa_len, _stampa_mese, _size_header; int _stampa_len, _stampa_mese, _size_header;
real _totale_doc, _credito; real _totale_doc, _credito;
TString _codreg, _desc_lib, _codatt, _attivita, _tipoatt; TString _codreg, _desc_lib, _codatt, _attivita, _tipoatt;
TString _tipodoc, _descr_doc, _codlib, _codice_vidi; TString _tipodoc, _descr_doc, _codlib, _codice_vidi;
TString _cofi,_cap,_paiva,_ragsoc,_comunefis,_provfis,_viafis; TString _cofi,_cap,_paiva,_ragsoc,_comunefis,_provfis,_viafis;
TFilename _t, _pippo; TFilename _t, _pippo;
TParagraph_string* _desc27; TParagraph_string* _desc27;
messaggio _scelta; messaggio _scelta;
protected: protected:
static bool filter_func (const TRelation * r); static bool filter_func (const TRelation * r);
static bool mask_tipo_stampa (TMask_field&, KEY); static bool mask_tipo_stampa (TMask_field&, KEY);
static bool to_ditt_handler (TMask_field&, KEY); static bool to_ditt_handler (TMask_field&, KEY);
static bool fr_ditt_handler (TMask_field&, KEY); static bool fr_ditt_handler (TMask_field&, KEY);
static bool to_butt_handler (TMask_field&, KEY); static bool to_butt_handler (TMask_field&, KEY);
static bool fr_butt_handler (TMask_field&, KEY); static bool fr_butt_handler (TMask_field&, KEY);
static bool mask_cod (TMask_field&, KEY); static bool mask_cod (TMask_field&, KEY);
static bool mask_libun (TMask_field&, KEY); static bool mask_libun (TMask_field&, KEY);
static bool mask_data (TMask_field&, KEY); static bool mask_data (TMask_field&, KEY);
static bool mask_mese (TMask_field&, KEY); static bool mask_mese (TMask_field&, KEY);
static bool mask_fino_a_mese (TMask_field&, KEY); static bool mask_fino_a_mese (TMask_field&, KEY);
static bool mask_select (TMask_field&, KEY); static bool mask_select (TMask_field&, KEY);
static bool mask_azzera (TMask_field&, KEY); static bool mask_azzera (TMask_field&, KEY);
static bool year_handler (TMask_field&, KEY); static bool year_handler (TMask_field&, KEY);
public: public:
const char* desc_attivita (); const char* desc_attivita ();
const char* tipo_attivita (); const char* tipo_attivita ();
const char* descr_doc (); const char* descr_doc ();
const char* descr_iva (const char *); const char* descr_iva (const char *);
TRectype& ricerca_occ(const char*); TRectype& ricerca_occ(const char*);
TRectype& ricerca_cf (char, long); TRectype& ricerca_cf (char, long);
TRectype& look_comuni(const char*); TRectype& look_comuni(const char*);
TArray_sheet* get_ditte_sheet() { return _ditte; } TArray_sheet* get_ditte_sheet() { return _ditte; }
int setta_riga (int, const TRigaiva&, real&, real&, real&, real&); int setta_riga (int, const TRigaiva&, real&, real&, real&, real&);
int riga_rmoviva(); int riga_rmoviva();
bool set_print(int); bool set_print(int);
bool set_ditte(TMask&); bool set_ditte(TMask&);
bool compila_reg(const TMask&); bool compila_reg(const TMask&);
bool compila_lib(); bool compila_lib();
messaggio controlla_liquidazione(); messaggio controlla_liquidazione();
messaggio controlla_b0(); messaggio controlla_b0();
bool controlla_mov(); bool controlla_mov();
bool stampo_liquidazione(int); bool stampo_liquidazione(int);
bool ventilazione(const char*); bool ventilazione(const char*);
bool cerca_libro_gio(TString&, bool*); bool cerca_libro_gio(TString&, bool*);
bool look_reg (int, int, TString&, int, const char*, int*, long); bool look_reg (int, int, TString&, int, const char*, int*, long);
bool look_regs(int, TString&, int, int*, long, bool*); bool look_regs(int, TString&, int, int*, long, TProgind*);
bool stampa_totali_finali(); bool stampa_totali_finali();
bool stampa_datareg(); bool stampa_datareg();
bool stampa_registri_IVA(const TMask&); bool stampa_registri_IVA(const TMask&);
bool look_lia(long ditta = 0l); bool look_lia(long ditta = 0l);
bool ricerca_mese(TString&,TString&,int,int,TMask_field&); bool ricerca_mese(TString&,TString&,int,int,TMask_field&);
void set_choice_limits(TMask&); void set_choice_limits(TMask&);
void build_ditte_sheet(); void build_ditte_sheet();
void cerca_reg(const TString&, byte*); void cerca_reg(const TString&, byte*);
void set_page_tot_reg(); void set_page_tot_reg();
void send_message(char, const TFilename&,int); void send_message(char, const TFilename&,int);
void aggiorna_reg(const bool aggiorna_vidi); void aggiorna_reg(const bool aggiorna_vidi);
void aggiorna_lib(); void aggiorna_lib();
void calcola_progressivi(); void calcola_progressivi();
void stampa_liq_mesi_succ(); void stampa_liq_mesi_succ();
void look_reg(); void look_reg();
void no_movimenti(); void no_movimenti();
void liq_b0_settato(); void liq_b0_settato();
void liq_other_case(); void liq_other_case();
bool setta_mask(long); bool setta_mask(long);
bool preprocess_page(int, int); bool preprocess_page(int, int);
int stampa_intestazione(); int stampa_intestazione();
int stampa_prospetto(); int stampa_prospetto();
long select_firm_range(long,long); long select_firm_range(long,long);
void stampa_plafonds(int); void stampa_plafonds(int);
void get_dati_ditta(); void get_dati_ditta();
void stampa_vidi(); void stampa_vidi();
void scrivi_reg(); void scrivi_reg();
int stampa_acquisti(int); int stampa_acquisti(int);
real stampa_valori_plafonds(const real&, const int, TTable&, const char*); real stampa_valori_plafonds(const real&, const int, TTable&, const char*);
void build_nomiditte(TProgind* pnd = NULL); void build_nomiditte(TProgind* pnd = NULL);
void set_year(int y) { _annoes = y; } void set_year(int y) { _annoes = y; }
void clear_stliq(); void clear_stliq();
virtual bool preprocess_print(int, int); virtual bool preprocess_print(int, int);
virtual bool user_create(); virtual bool user_create();
virtual bool user_destroy(); virtual bool user_destroy();
virtual print_action postprocess_page (int, int); virtual print_action postprocess_page (int, int);
virtual void preprocess_header(); virtual void preprocess_header();
CG4400_application() : TPrintapp(), _ditte(NULL), _selected(10000), _nomiditte(100), _test(FALSE) {} CG4400_application() : TPrintapp(), _ditte(NULL), _selected(10000), _nomiditte(100), _test(FALSE) {}
virtual ~CG4400_application() {} virtual ~CG4400_application() {}
}; };

View File

@ -1,59 +1,59 @@
#include "cg4400b.h" #include "cg4400b.h"
PAGE "Stampa registri IVA" -1 -1 78 14 PAGE "Stampa registri IVA" -1 -1 78 12
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 0 "" PROMPT 1 0 ""
END END
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
PROMPT 3 1 "Ditta " PROMPT 3 1 "Ditta "
FLAGS "D" FLAGS "D"
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 17 1 "Ragione " PROMPT 17 1 "Ragione "
FLAGS "D" FLAGS "D"
END END
STRING COD_LIB 3 STRING COD_LIB 3
BEGIN BEGIN
PROMPT 3 4 "Codice Libro " PROMPT 3 4 "Codice Libro "
FLAGS "D" FLAGS "D"
END END
LISTBOX U_MESE 10 LISTBOX U_MESE 10
BEGIN BEGIN
PROMPT 3 5 "Stampa mese " PROMPT 3 5 "Stampa mese "
FLAGS "MD" FLAGS "MD"
ITEM "00|Nessuno" ITEM "00|Nessuno"
END END
NUMBER U_PAGINA 4 NUMBER U_PAGINA 4
BEGIN BEGIN
PROMPT 3 6 "Ult.num.pagina stampata libro ditta " PROMPT 3 6 "Ult.num.pagina stampata libro ditta "
FLAGS "R" FLAGS "R"
END END
DATE U_DATA DATE U_DATA
BEGIN BEGIN
PROMPT 3 7 "Ultima data di stampa " PROMPT 3 7 "Ultima data di stampa "
FLAGS "D" FLAGS "D"
END END
BUTTON DLG_OK 9 2 BUTTON DLG_OK 9 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END
BUTTON DLG_CANCEL 9 2 BUTTON DLG_CANCEL 9 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

File diff suppressed because it is too large Load Diff

View File

@ -1,350 +1,350 @@
#include "cg4600.h" #include "cg4600.h"
PAGE "" -1 -1 76 20 PAGE "" -1 -1 76 20
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
PROMPT 2 1 "Ditta " PROMPT 2 1 "Ditta "
FLAGS "FRD" FLAGS "FRD"
USE LF_NDITTE KEY 1 USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC OUTPUT F_RAGSOC RAGSOC
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 2 2 "Ragione sociale " PROMPT 2 2 "Ragione sociale "
FLAGS "D" FLAGS "D"
END END
STRING F_CHIUSURA 3 STRING F_CHIUSURA 3
BEGIN BEGIN
PROMPT 2 4 "Codice causale chiusura " PROMPT 2 4 "Codice causale chiusura "
HELP "Codice causale che genera il movimento di chiusura" HELP "Codice causale che genera il movimento di chiusura"
USE LF_CAUSALI KEY 1 SELECT MOVAP="C" USE LF_CAUSALI KEY 1 SELECT MOVAP="C"
FLAGS "UZ" FLAGS "UZ"
DISPLAY "Codice" CODCAUS DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione @50" DESCR DISPLAY "Descrizione @50" DESCR
OUTPUT F_CHIUSURA CODCAUS OUTPUT F_CHIUSURA CODCAUS
INPUT CODCAUS F_CHIUSURA INPUT CODCAUS F_CHIUSURA
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_APERTURA 3 STRING F_APERTURA 3
BEGIN BEGIN
PROMPT 2 5 "Codice causale apertura " PROMPT 2 5 "Codice causale apertura "
HELP "Codice causale che genera il movimento di apertura" HELP "Codice causale che genera il movimento di apertura"
USE LF_CAUSALI KEY 1 SELECT MOVAP="A" USE LF_CAUSALI KEY 1 SELECT MOVAP="A"
FLAGS "UZ" FLAGS "UZ"
COPY DISPLAY F_CHIUSURA COPY DISPLAY F_CHIUSURA
OUTPUT F_APERTURA CODCAUS OUTPUT F_APERTURA CODCAUS
INPUT CODCAUS F_APERTURA INPUT CODCAUS F_APERTURA
END END
DATE F_DATAC DATE F_DATAC
BEGIN BEGIN
PROMPT 36 4 "Data/Anno chiusura " PROMPT 36 4 "Data/Anno chiusura "
HELP "Data in cui effettuare il movimento di chiusura" HELP "Data in cui effettuare il movimento di chiusura"
END END
DATE F_DATAAP DATE F_DATAAP
BEGIN BEGIN
PROMPT 36 5 "Data/Anno apertura " PROMPT 36 5 "Data/Anno apertura "
HELP "Data in cui effettuare il movimento di apertura" HELP "Data in cui effettuare il movimento di apertura"
WARNING "Inserire una data non inferiore alla data di chiusura" WARNING "Inserire una data non inferiore alla data di chiusura"
VALIDATE DATE_CMP_FUNC >= F_DATAC VALIDATE DATE_CMP_FUNC >= F_DATAC
END END
NUMBER F_ANNOCH 4 NUMBER F_ANNOCH 4
BEGIN BEGIN
PROMPT 69 4 "" PROMPT 69 4 ""
USE ESC USE ESC
INPUT CODTAB F_ANNOCH INPUT CODTAB F_ANNOCH
DISPLAY "Anno" CODTAB DISPLAY "Anno" CODTAB
DISPLAY "Inizio Es.@12" D0 DISPLAY "Inizio Es.@12" D0
DISPLAY "Fine Es.@12" D1 DISPLAY "Fine Es.@12" D1
DISPLAY "Scarico@12" D2 DISPLAY "Scarico@12" D2
OUTPUT F_ANNOCH CODTAB OUTPUT F_ANNOCH CODTAB
OUTPUT F_DATAC D1 OUTPUT F_DATAC D1
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Anno non presente in tabella esercizi" WARNING "Anno non presente in tabella esercizi"
FLAGS "GRZD" FLAGS "GRZD"
END END
NUMBER F_ANNO 4 NUMBER F_ANNO 4
BEGIN BEGIN
PROMPT 69 5 "" PROMPT 69 5 ""
COPY USE F_ANNOCH COPY USE F_ANNOCH
INPUT CODTAB F_ANNO INPUT CODTAB F_ANNO
COPY DISPLAY F_ANNOCH COPY DISPLAY F_ANNOCH
OUTPUT F_ANNO CODTAB OUTPUT F_ANNO CODTAB
OUTPUT F_DATAAP D0 OUTPUT F_DATAAP D0
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
WARNING "Anno non presente in tabella esercizi" WARNING "Anno non presente in tabella esercizi"
FLAGS "GRZD" FLAGS "GRZD"
END END
GROUPBOX DLG_NULL 60 10 GROUPBOX DLG_NULL 60 10
BEGIN BEGIN
PROMPT 2 7 "Codici sottoconto" PROMPT 2 7 "Codici sottoconto"
END END
NUMBER F_BILCHG 3 NUMBER F_BILCHG 3
BEGIN BEGIN
PROMPT 3 9 "Bilancio di chiusura " PROMPT 3 9 "Bilancio di chiusura "
HELP "Codice conto di riepilogo del bilancio di chiusura" HELP "Codice conto di riepilogo del bilancio di chiusura"
USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" USE LF_PCON KEY 1 SELECT SOTTOCONTO!=""
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione @50" DESCR DISPLAY "Descrizione @50" DESCR
OUTPUT F_BILCHG GRUPPO OUTPUT F_BILCHG GRUPPO
OUTPUT F_BILCHC CONTO OUTPUT F_BILCHC CONTO
OUTPUT F_BILCHS SOTTOCONTO OUTPUT F_BILCHS SOTTOCONTO
INPUT GRUPPO F_BILCHG INPUT GRUPPO F_BILCHG
INPUT CONTO F_BILCHC INPUT CONTO F_BILCHC
INPUT SOTTOCONTO F_BILCHS INPUT SOTTOCONTO F_BILCHS
END END
NUMBER F_BILCHC 3 NUMBER F_BILCHC 3
BEGIN BEGIN
PROMPT 44 9 "" PROMPT 44 9 ""
HELP "Codice conto di riepilogo del bilancio di chiusura" HELP "Codice conto di riepilogo del bilancio di chiusura"
COPY ALL F_BILCHG COPY ALL F_BILCHG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
NUMBER F_BILCHS 6 NUMBER F_BILCHS 6
BEGIN BEGIN
PROMPT 51 9 "" PROMPT 51 9 ""
HELP "Codice conto di riepilogo del bilancio di chiusura" HELP "Codice conto di riepilogo del bilancio di chiusura"
COPY ALL F_BILCHG COPY ALL F_BILCHG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
NUMBER F_PROPERG 3 NUMBER F_PROPERG 3
BEGIN BEGIN
PROMPT 3 10 "Profitti e perdite " PROMPT 3 10 "Profitti e perdite "
HELP "Codice conto di riepilogo del Profitti e perdite" HELP "Codice conto di riepilogo del Profitti e perdite"
COPY USE F_BILCHG COPY USE F_BILCHG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
OUTPUT F_PROPERG GRUPPO OUTPUT F_PROPERG GRUPPO
OUTPUT F_PROPERC CONTO OUTPUT F_PROPERC CONTO
OUTPUT F_PROPERS SOTTOCONTO OUTPUT F_PROPERS SOTTOCONTO
INPUT GRUPPO F_PROPERG INPUT GRUPPO F_PROPERG
INPUT CONTO F_PROPERC INPUT CONTO F_PROPERC
INPUT SOTTOCONTO F_PROPERS INPUT SOTTOCONTO F_PROPERS
END END
NUMBER F_PROPERC 3 NUMBER F_PROPERC 3
BEGIN BEGIN
PROMPT 44 10 "" PROMPT 44 10 ""
HELP "Codice conto di riepilogo del Profitti e perdite" HELP "Codice conto di riepilogo del Profitti e perdite"
COPY USE F_BILCHG COPY USE F_BILCHG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
COPY OUTPUT F_PROPERG COPY OUTPUT F_PROPERG
COPY INPUT F_PROPERG COPY INPUT F_PROPERG
END END
NUMBER F_PROPERS 6 NUMBER F_PROPERS 6
BEGIN BEGIN
PROMPT 51 10 "" PROMPT 51 10 ""
HELP "Codice conto di riepilogo del Profitti e perdite" HELP "Codice conto di riepilogo del Profitti e perdite"
COPY ALL F_PROPERC COPY ALL F_PROPERC
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
NUMBER F_BILAPG 3 NUMBER F_BILAPG 3
BEGIN BEGIN
PROMPT 3 11 "Bilancio di apertura " PROMPT 3 11 "Bilancio di apertura "
HELP "Codice conto di riepilogo del Bilancio di apertura" HELP "Codice conto di riepilogo del Bilancio di apertura"
COPY USE F_BILCHG COPY USE F_BILCHG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
OUTPUT F_BILAPG GRUPPO OUTPUT F_BILAPG GRUPPO
OUTPUT F_BILAPC CONTO OUTPUT F_BILAPC CONTO
OUTPUT F_BILAPS SOTTOCONTO OUTPUT F_BILAPS SOTTOCONTO
INPUT GRUPPO F_BILAPG INPUT GRUPPO F_BILAPG
INPUT CONTO F_BILAPC INPUT CONTO F_BILAPC
INPUT SOTTOCONTO F_BILAPS INPUT SOTTOCONTO F_BILAPS
END END
NUMBER F_BILAPC 3 NUMBER F_BILAPC 3
BEGIN BEGIN
PROMPT 44 11 "" PROMPT 44 11 ""
HELP "Codice conto di riepilogo del Bilancio di apertura" HELP "Codice conto di riepilogo del Bilancio di apertura"
COPY USE F_BILCHG COPY USE F_BILCHG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
COPY OUTPUT F_BILAPG COPY OUTPUT F_BILAPG
COPY INPUT F_BILAPG COPY INPUT F_BILAPG
END END
NUMBER F_BILAPS 6 NUMBER F_BILAPS 6
BEGIN BEGIN
PROMPT 51 11 "" PROMPT 51 11 ""
HELP "Codice conto di riepilogo del Bilancio di apertura" HELP "Codice conto di riepilogo del Bilancio di apertura"
COPY ALL F_BILAPC COPY ALL F_BILAPC
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
NUMBER F_UTILPG 3 NUMBER F_UTILPG 3
BEGIN BEGIN
PROMPT 3 12 "Utile d'esercizio c/to patrim. " PROMPT 3 12 "Utile d'esercizio c/to patrim. "
HELP "Codice conto patrimoniale in cui ripilogare l'utile d'esercizio" HELP "Codice conto patrimoniale in cui ripilogare l'utile d'esercizio"
USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="")
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
OUTPUT F_UTILPG GRUPPO OUTPUT F_UTILPG GRUPPO
OUTPUT F_UTILPC CONTO OUTPUT F_UTILPC CONTO
OUTPUT F_UTILPS SOTTOCONTO OUTPUT F_UTILPS SOTTOCONTO
INPUT GRUPPO F_UTILPG INPUT GRUPPO F_UTILPG
INPUT CONTO F_UTILPC INPUT CONTO F_UTILPC
INPUT SOTTOCONTO F_UTILPS INPUT SOTTOCONTO F_UTILPS
END END
NUMBER F_UTILPC 3 NUMBER F_UTILPC 3
BEGIN BEGIN
PROMPT 44 12 "" PROMPT 44 12 ""
HELP "Codice conto patrimoniale in cui ripilogare l'utile d'esercizio" HELP "Codice conto patrimoniale in cui ripilogare l'utile d'esercizio"
COPY USE F_UTILPG COPY USE F_UTILPG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
COPY OUTPUT F_UTILPG COPY OUTPUT F_UTILPG
COPY INPUT F_UTILPG COPY INPUT F_UTILPG
END END
NUMBER F_UTILPS 6 NUMBER F_UTILPS 6
BEGIN BEGIN
PROMPT 51 12 "" PROMPT 51 12 ""
HELP "Codice conto patrimoniale in cui ripilogare l'utile d'esercizio" HELP "Codice conto patrimoniale in cui ripilogare l'utile d'esercizio"
COPY ALL F_UTILPC COPY ALL F_UTILPC
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
NUMBER F_PERDPG 3 NUMBER F_PERDPG 3
BEGIN BEGIN
PROMPT 3 13 "Perdita d'esercizio c/to patr. " PROMPT 3 13 "Perdita d'esercizio c/to patr. "
HELP "Codice conto patrimoniale in cui ripilogare la perdita d'esercizio" HELP "Codice conto patrimoniale in cui ripilogare la perdita d'esercizio"
USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="")
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
OUTPUT F_PERDPG GRUPPO OUTPUT F_PERDPG GRUPPO
OUTPUT F_PERDPC CONTO OUTPUT F_PERDPC CONTO
OUTPUT F_PERDPS SOTTOCONTO OUTPUT F_PERDPS SOTTOCONTO
INPUT GRUPPO F_PERDPG INPUT GRUPPO F_PERDPG
INPUT CONTO F_PERDPC INPUT CONTO F_PERDPC
INPUT SOTTOCONTO F_PERDPS INPUT SOTTOCONTO F_PERDPS
END END
NUMBER F_PERDPC 3 NUMBER F_PERDPC 3
BEGIN BEGIN
PROMPT 44 13 "" PROMPT 44 13 ""
HELP "Codice conto patrimoniale in cui ripilogare la perdita d'esercizio" HELP "Codice conto patrimoniale in cui ripilogare la perdita d'esercizio"
COPY USE F_PERDPG COPY USE F_PERDPG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
COPY OUTPUT F_PERDPG COPY OUTPUT F_PERDPG
COPY INPUT F_PERDPG COPY INPUT F_PERDPG
END END
NUMBER F_PERDPS 6 NUMBER F_PERDPS 6
BEGIN BEGIN
PROMPT 51 13 "" PROMPT 51 13 ""
HELP "Codice conto patrimoniale in cui ripilogare la perdita d'esercizio" HELP "Codice conto patrimoniale in cui ripilogare la perdita d'esercizio"
COPY ALL F_PERDPC COPY ALL F_PERDPC
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
NUMBER F_UTILEG 3 NUMBER F_UTILEG 3
BEGIN BEGIN
PROMPT 3 14 "Utile d'esercizio c/to econom. " PROMPT 3 14 "Utile d'esercizio c/to econom. "
HELP "Codice conto economico in cui ripilogare l'utile d'esercizio" HELP "Codice conto economico in cui ripilogare l'utile d'esercizio"
USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="")
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
OUTPUT F_UTILEG GRUPPO OUTPUT F_UTILEG GRUPPO
OUTPUT F_UTILEC CONTO OUTPUT F_UTILEC CONTO
OUTPUT F_UTILES SOTTOCONTO OUTPUT F_UTILES SOTTOCONTO
INPUT GRUPPO F_UTILEG INPUT GRUPPO F_UTILEG
INPUT CONTO F_UTILEC INPUT CONTO F_UTILEC
INPUT SOTTOCONTO F_UTILES INPUT SOTTOCONTO F_UTILES
END END
NUMBER F_UTILEC 3 NUMBER F_UTILEC 3
BEGIN BEGIN
PROMPT 44 14 "" PROMPT 44 14 ""
HELP "Codice conto economico in cui ripilogare l'utile d'esercizio" HELP "Codice conto economico in cui ripilogare l'utile d'esercizio"
COPY USE F_UTILEG COPY USE F_UTILEG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
COPY OUTPUT F_UTILEG COPY OUTPUT F_UTILEG
COPY INPUT F_UTILEG COPY INPUT F_UTILEG
END END
NUMBER F_UTILES 6 NUMBER F_UTILES 6
BEGIN BEGIN
PROMPT 51 14 "" PROMPT 51 14 ""
HELP "Codice conto economico in cui ripilogare l'utile d'esercizio" HELP "Codice conto economico in cui ripilogare l'utile d'esercizio"
COPY ALL F_UTILEC COPY ALL F_UTILEC
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
NUMBER F_PERDEG 3 NUMBER F_PERDEG 3
BEGIN BEGIN
PROMPT 3 15 "Perdita d'esercizio c/to econ. " PROMPT 3 15 "Perdita d'esercizio c/to econ. "
HELP "Codice conto economico in cui ripilogare la perdita d'esercizio" HELP "Codice conto economico in cui ripilogare la perdita d'esercizio"
USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="")
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
OUTPUT F_PERDEG GRUPPO OUTPUT F_PERDEG GRUPPO
OUTPUT F_PERDEC CONTO OUTPUT F_PERDEC CONTO
OUTPUT F_PERDES SOTTOCONTO OUTPUT F_PERDES SOTTOCONTO
INPUT GRUPPO F_PERDEG INPUT GRUPPO F_PERDEG
INPUT CONTO F_PERDEC INPUT CONTO F_PERDEC
INPUT SOTTOCONTO F_PERDES INPUT SOTTOCONTO F_PERDES
END END
NUMBER F_PERDEC 3 NUMBER F_PERDEC 3
BEGIN BEGIN
PROMPT 44 15 "" PROMPT 44 15 ""
HELP "Codice conto economico in cui ripilogare la perdita d'esercizio" HELP "Codice conto economico in cui ripilogare la perdita d'esercizio"
COPY USE F_PERDEG COPY USE F_PERDEG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
COPY DISPLAY F_BILCHG COPY DISPLAY F_BILCHG
COPY OUTPUT F_PERDEG COPY OUTPUT F_PERDEG
COPY INPUT F_PERDEG COPY INPUT F_PERDEG
END END
NUMBER F_PERDES 6 NUMBER F_PERDES 6
BEGIN BEGIN
PROMPT 51 15 "" PROMPT 51 15 ""
HELP "Codice conto economico in cui ripilogare la perdita d'esercizio" HELP "Codice conto economico in cui ripilogare la perdita d'esercizio"
COPY ALL F_PERDEC COPY ALL F_PERDEC
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
BUTTON DLG_OK 9 2 BUTTON DLG_OK 9 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END
BUTTON DLG_QUIT 9 2 BUTTON DLG_QUIT 9 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -1,152 +1,152 @@
#ifndef __CGLIB_H #ifndef __CGLIB_H
#define __CGLIB_H #define __CGLIB_H
#ifndef __ISAM_H #ifndef __ISAM_H
#include <isam.h> #include <isam.h>
#endif #endif
#include <assoc.h> #include <assoc.h>
#include "conto.h" #include "conto.h"
#include "cg2103.h" // per TCausale #include "cg2103.h" // per TCausale
class TCaus : public TCausale class TCaus : public TCausale
{ {
private: private:
TRectype _rec; TRectype _rec;
public: public:
bool chiusura() const; bool chiusura() const;
bool apertura() const; bool apertura() const;
virtual bool read(const char* cod); virtual bool read(const char* cod);
TCaus(const char* cod); TCaus(const char* cod);
~TCaus() {} ~TCaus() {}
}; };
class TSaldi_list : public TAssoc_array class TSaldi_list : public TAssoc_array
{ {
public: public:
TSaldi_list (int g, int c, int aec, int aep=0); TSaldi_list (int g, int c, int aec, int aep=0);
TRectype* saldi() const; TRectype* saldi() const;
}; };
enum tipobil { DataLimite=1, UltimaImmissione }; enum tipobil { DataLimite=1, UltimaImmissione };
const int EsePre(const int EseCorr); const int EsePre(const int EseCorr);
class TSaldo class TSaldo
{ {
real _saldo, _saldo_iniziale, _saldoiniziale; real _saldo, _saldo_iniziale, _saldoiniziale;
real _prg_dare, _prg_avere, _prg_daresca, _prg_averesca; real _prg_dare, _prg_avere, _prg_daresca, _prg_averesca;
int _indbil; int _indbil;
TRectype* _saldo_ep; TRectype* _saldo_ep;
int _annoes; int _annoes;
TDate _inizioEs, _fineEs; TDate _inizioEs, _fineEs;
TString16 _codcaus; TString16 _codcaus;
TDate _datareg; TDate _datareg;
TDate _datacomp; TDate _datacomp;
TString _provv; TString _provv;
bool _movimentato; bool _movimentato;
bool _significativo; bool _significativo;
bool _rec_presente_ec; bool _rec_presente_ec;
bool _rec_presente_ep; bool _rec_presente_ep;
bool _prec; bool _prec;
protected: protected:
void InFinEs(int); void InFinEs(int);
void leggi_mov(long numreg); // Leggi testata void leggi_mov(long numreg); // Leggi testata
real calcola_saldo_iniziale(int g, int c, long s, int indbil); real calcola_saldo_iniziale(int g, int c, long s, int indbil);
public: public:
bool movimentato() const { return _movimentato; } bool movimentato() const { return _movimentato; }
bool significativo() const { return _significativo; } bool significativo() const { return _significativo; }
bool esiste_saldo() const { return _rec_presente_ec || _rec_presente_ep;} bool esiste_saldo() const { return _rec_presente_ec || _rec_presente_ep;}
bool esiste_saldo_ep() const { return _rec_presente_ep; } bool esiste_saldo_ep() const { return _rec_presente_ep; }
int annoes () const { return _annoes; } int annoes () const { return _annoes; }
void set_annoes (int anno) { _annoes = anno; } void set_annoes (int anno) { _annoes = anno; }
bool causale_mov(long, const TDate&, const TDate&, TString&); bool causale_mov(long, const TDate&, const TDate&, TString&);
const char* causale_chiusura_es(); const char* causale_chiusura_es();
const char* causale_apertura_es(); const char* causale_apertura_es();
bool ultima_immissione_bilancio(int anno,int g,int c,long s,int indbil,int prov); bool ultima_immissione_bilancio(int anno,int g,int c,long s,int indbil,int prov);
bool ultima_immissione_verifica(int anno,int g,int c,long s,int indbil,int prov); bool ultima_immissione_verifica(int anno,int g,int c,long s,int indbil,int prov);
bool data_limite_bilancio(int,int,int,long,const TDate&,const TDate&,int,int); bool data_limite_bilancio(int,int,int,long,const TDate&,const TDate&,int,int);
TRectype& ricerca_progr_prec(int, int, int, long); TRectype& ricerca_progr_prec(int, int, int, long);
real saldofin_esprec(int,int,int,long); real saldofin_esprec(int,int,int,long);
bool prg_attuali(int,TConto&,real&,real&); bool prg_attuali(int,TConto&,real&,real&);
bool prg_mov_eliminati(int,TConto&,real&,real&); bool prg_mov_eliminati(int,TConto&,real&,real&);
const real& saldo() const { return _saldo;} const real& saldo() const { return _saldo;}
const real& saldoini() const { return _saldo_iniziale;} const real& saldoini() const { return _saldo_iniziale;}
const real& saldoinisusaldi() const { return _saldoiniziale;} const real& saldoinisusaldi() const { return _saldoiniziale;}
const real& prgdare() const { return _prg_dare;} const real& prgdare() const { return _prg_dare;}
const real& prgavere() const { return _prg_avere;} const real& prgavere() const { return _prg_avere;}
const bool flagprec() { return _prec; } const bool flagprec() { return _prec; }
bool prg_attuali(int,TConto&,int,real&,real&); bool prg_attuali(int,TConto&,int,real&,real&);
bool prg_mov_eliminati(int,TConto&,int,real&,real&); bool prg_mov_eliminati(int,TConto&,int,real&,real&);
TSaldo(); TSaldo();
~TSaldo(); ~TSaldo();
}; };
class TTab_conti : public TAssoc_array class TTab_conti : public TAssoc_array
{ {
public: public:
void aggiorna_conto(const TBill& tc, int anno_es, const TImporto& importo, void aggiorna_conto(const TBill& tc, int anno_es, const TImporto& importo,
bool movap, bool provv, bool somma); bool movap, bool provv, bool somma);
TConto* add(const TBill& c, int anno); TConto* add(const TBill& c, int anno);
TConto* find(const TBill& c, int anno); TConto* find(const TBill& c, int anno);
void remove(const TBill& c, int anno); void remove(const TBill& c, int anno);
}; };
class TSaldo_agg : public TObject class TSaldo_agg : public TObject
{ {
TTab_conti _tab_conti; TTab_conti _tab_conti;
bool _movap; // se e' mov. d'apertura (aggiorno SALDO e FLAGSALINI in bool _movap; // se e' mov. d'apertura (aggiorno SALDO e FLAGSALINI in
// saldi) // saldi)
bool _provv; bool _provv;
int _anno_es; // anno esercizio int _anno_es; // anno esercizio
TDate _data_ulmov; // data ultimo movimento TDate _data_ulmov; // data ultimo movimento
long _num_ulmov; // numero ultimo movimento long _num_ulmov; // numero ultimo movimento
TRectype * _rec; // record corrente sui saldi TRectype * _rec; // record corrente sui saldi
public: public:
void clear_saldi(int year); void clear_saldi(int year);
void registra(); void registra();
void aggiorna (const TBill& tc, const TImporto& importo, bool somma=TRUE); void aggiorna (const TBill& tc, const TImporto& importo, bool somma=TRUE);
void aggiorna (int gruppo, int conto, long sottoconto, void aggiorna (int gruppo, int conto, long sottoconto,
const real& importo, char sezione, bool somma=TRUE); const real& importo, char sezione, bool somma=TRUE);
TConto* find(const TBill& c, int anno) { return _tab_conti.find(c, anno); } TConto* find(const TBill& c, int anno) { return _tab_conti.find(c, anno); }
void set_anno_es(int anno) { _anno_es = anno; } void set_anno_es(int anno) { _anno_es = anno; }
int anno_es() const { return _anno_es; } int anno_es() const { return _anno_es; }
void set_movap (bool movap) { _movap = movap; } void set_movap (bool movap) { _movap = movap; }
bool movap() const { return _movap; } bool movap() const { return _movap; }
void set_movprovv (bool p) { _provv = p; } void set_movprovv (bool p) { _provv = p; }
bool movprovv() const { return _provv; } bool movprovv() const { return _provv; }
void set_data_ulmov (const TDate& data) { _data_ulmov = data; } void set_data_ulmov (const TDate& data) { _data_ulmov = data; }
const TDate& data_ulmov() const { return _data_ulmov; } const TDate& data_ulmov() const { return _data_ulmov; }
void set_num_ulmov (long num) { _num_ulmov = num; } void set_num_ulmov (long num) { _num_ulmov = num; }
long num_ulmov() const { return _num_ulmov; } long num_ulmov() const { return _num_ulmov; }
void reset(); // pulisce l'array dei conti void reset(); // pulisce l'array dei conti
TSaldo_agg(); TSaldo_agg();
int items() const { return _tab_conti.items();} int items() const { return _tab_conti.items();}
}; };
#endif #endif

File diff suppressed because it is too large Load Diff