Aggiunta selezione per partita IVA in stampa e visualizzazione mastrini
Migliorata stampa liquidazione IVA differita git-svn-id: svn://10.65.10.50/branches/R_10_00@22719 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
6b39ab9e24
commit
f498fdfba2
@ -1022,7 +1022,6 @@ void TPrimanota_application::write_scadenze(const TMask& m)
|
|||||||
for (int i = 0; i < new_rate; i++)
|
for (int i = 0; i < new_rate; i++)
|
||||||
{
|
{
|
||||||
real* r = new real;
|
real* r = new real;
|
||||||
|
|
||||||
ant.add(r);
|
ant.add(r);
|
||||||
if (i < nrate)
|
if (i < nrate)
|
||||||
*r = partita.rata(i + 1).get_real(SCAD_IMPORTOANT);
|
*r = partita.rata(i + 1).get_real(SCAD_IMPORTOANT);
|
||||||
|
131
cg/cg3200.cpp
131
cg/cg3200.cpp
@ -155,7 +155,7 @@ public:
|
|||||||
int ricerca_clifo(int riga);
|
int ricerca_clifo(int riga);
|
||||||
int ricerca_gruppo(int riga);
|
int ricerca_gruppo(int riga);
|
||||||
|
|
||||||
void calcola_progressivi(bool finali = FALSE);
|
void calcola_progressivi(bool finali = false);
|
||||||
void calcola_progressivi_al(const TDate& data);
|
void calcola_progressivi_al(const TDate& data);
|
||||||
int stampa_progressivi(int start_riga);
|
int stampa_progressivi(int start_riga);
|
||||||
int stampa_progre_riporto(int start_riga);
|
int stampa_progre_riporto(int start_riga);
|
||||||
@ -554,7 +554,7 @@ int TMastrini_application::date2esc(const TDate& d)
|
|||||||
|
|
||||||
bool TMastrini_application::almeno_un_record()
|
bool TMastrini_application::almeno_un_record()
|
||||||
{
|
{
|
||||||
bool trovato=FALSE;
|
bool trovato = false;
|
||||||
|
|
||||||
if (current_cursor()->is_first_match(LF_RMOV))
|
if (current_cursor()->is_first_match(LF_RMOV))
|
||||||
{
|
{
|
||||||
@ -564,6 +564,7 @@ bool TMastrini_application::almeno_un_record()
|
|||||||
TRelation rel(LF_RMOV);
|
TRelation rel(LF_RMOV);
|
||||||
rel.add(LF_MOV, "NUMREG==NUMREG");
|
rel.add(LF_MOV, "NUMREG==NUMREG");
|
||||||
TRectype& rmov = rel.curr();
|
TRectype& rmov = rel.curr();
|
||||||
|
const TRectype& mov = rel.curr(LF_MOV);
|
||||||
|
|
||||||
rmov.zero();
|
rmov.zero();
|
||||||
rmov.put(RMV_GRUPPO, _gruppo);
|
rmov.put(RMV_GRUPPO, _gruppo);
|
||||||
@ -575,28 +576,17 @@ bool TMastrini_application::almeno_un_record()
|
|||||||
for (cur = 0L; cur.pos() < items; ++cur)
|
for (cur = 0L; cur.pos() < items; ++cur)
|
||||||
{
|
{
|
||||||
const int annoes = rmov.get_int (RMV_ANNOES);
|
const int annoes = rmov.get_int (RMV_ANNOES);
|
||||||
const long numreg = rmov.get_long(RMV_NUMREG);
|
const TString4 provvis (mov.get(MOV_PROVVIS));
|
||||||
|
const TDate datareg = _annomsk ? mov.get_date(MOV_DATACOMP) : rmov.get_date(RMV_DATAREG);
|
||||||
const TRectype & mov = cache().get(LF_MOV, numreg);
|
|
||||||
|
|
||||||
const TDate datacomp = (mov.get_date(MOV_DATACOMP));
|
|
||||||
const TString16 provvis (mov.get(MOV_PROVVIS));
|
|
||||||
|
|
||||||
|
|
||||||
TDate datareg;
|
|
||||||
if (_annomsk == 0)
|
|
||||||
datareg = rmov.get_date(RMV_DATAREG);
|
|
||||||
else
|
|
||||||
datareg = datacomp;
|
|
||||||
|
|
||||||
if ( ((annoes==_annomsk) || (_annomsk==0)) && ((datareg>=_data_ini) && (datareg<=_data_fine)) && (_stampa_mov_prov || provvis.blank()))
|
if ( ((annoes==_annomsk) || (_annomsk==0)) && ((datareg>=_data_ini) && (datareg<=_data_fine)) && (_stampa_mov_prov || provvis.blank()))
|
||||||
{
|
{
|
||||||
trovato = TRUE;
|
trovato = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rmov_file.readat(record);
|
rmov_file.readat(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
return trovato;
|
return trovato;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2186,24 +2176,28 @@ void TMastrini_application::descrizione_causale()
|
|||||||
|
|
||||||
void TMastrini_application::documenti_iva()
|
void TMastrini_application::documenti_iva()
|
||||||
{
|
{
|
||||||
TString dep;
|
_tabtpd->zero();
|
||||||
|
if (_tipodoc.full())
|
||||||
_tabtpd->curr().zero();
|
{
|
||||||
dep << format ("%2s",(const char*) _tipodoc);
|
TString4 dep;
|
||||||
_tabtpd->curr().put("CODTAB", (const char*) dep);
|
dep.format("%2s",(const char*) _tipodoc);
|
||||||
|
_tabtpd->put("CODTAB", dep);
|
||||||
_tabtpd->read();
|
_tabtpd->read();
|
||||||
_descrdociva = _tabtpd->curr().get("S0");
|
}
|
||||||
_natdoc = atoi(_tabtpd->curr().get("I0"));
|
_descrdociva = _tabtpd->get("S0");
|
||||||
|
_natdoc = atoi(_tabtpd->get("I0"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMastrini_application::ricerca_regiva()
|
void TMastrini_application::ricerca_regiva()
|
||||||
{
|
{
|
||||||
TString16 dep;
|
_tabreg->zero();
|
||||||
_tabreg->curr().zero();
|
if (_annoiva > 0 && _regiva.full())
|
||||||
dep << format("%04d", _annoiva);
|
{
|
||||||
dep << format("%3s" , (const char*) _regiva);
|
TString8 dep;
|
||||||
_tabreg->curr().put("CODTAB", (const char*) dep);
|
dep.format("%04d%3s", _annoiva, (const char*)_regiva);
|
||||||
|
_tabreg->put("CODTAB", dep);
|
||||||
_tabreg->read();
|
_tabreg->read();
|
||||||
|
}
|
||||||
_tipo = _tabreg->get_int("I0");
|
_tipo = _tabreg->get_int("I0");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2501,11 +2495,9 @@ void TMastrini_application::conto(int gruppo, int conto, bool no_contropartita)
|
|||||||
|
|
||||||
void TMastrini_application::ricerca_dati_ditta()
|
void TMastrini_application::ricerca_dati_ditta()
|
||||||
{
|
{
|
||||||
long app;
|
|
||||||
|
|
||||||
const TRectype & nditte = cache().get(LF_NDITTE, _codice_ditta);
|
const TRectype & nditte = cache().get(LF_NDITTE, _codice_ditta);
|
||||||
|
|
||||||
app = nditte.get_long(NDT_CODDITTA);
|
const long app = nditte.get_long(NDT_CODDITTA);
|
||||||
_ragsoc = nditte.get(NDT_RAGSOC);
|
_ragsoc = nditte.get(NDT_RAGSOC);
|
||||||
|
|
||||||
TString16 key;
|
TString16 key;
|
||||||
@ -2924,18 +2916,33 @@ int TMastrini_application::stampa_progre_riporto(int start_riga)
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TMastrini_application::calcola_progressivi_al(const TDate& data_fin)
|
void TMastrini_application::calcola_progressivi_al(const TDate& data_fin)
|
||||||
{
|
{
|
||||||
|
static TBill _last_bill;
|
||||||
|
static TDate _last_date, _last_inizio;
|
||||||
|
static int _last_year;
|
||||||
|
static bool _last_provv;
|
||||||
|
static real _last_dare, _last_avere;
|
||||||
|
|
||||||
|
const TDate data_inizio = _annomsk ? _data_inizioese : _inizioes;
|
||||||
|
|
||||||
|
if (_annomsk == _last_year && data_inizio == _last_inizio && data_fin == _last_date &&
|
||||||
|
_last_provv == _stampa_mov_prov && _last_bill == TBill(_gruppo, _conto, _sottoc))
|
||||||
|
{
|
||||||
|
_totale_prima_dare = _last_dare;
|
||||||
|
_totale_prima_avere = _last_avere;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
TLocalisamfile& rmov_file = current_cursor()->file(LF_RMOV);
|
TLocalisamfile& rmov_file = current_cursor()->file(LF_RMOV);
|
||||||
const TRecnotype record = rmov_file.recno();
|
const TRecnotype record = rmov_file.recno();
|
||||||
|
|
||||||
_totale_prima_dare = ZERO;
|
|
||||||
_totale_prima_avere = ZERO;
|
|
||||||
|
|
||||||
TRelation rel(LF_RMOV);
|
TRelation rel(LF_RMOV);
|
||||||
rel.add(LF_MOV, "NUMREG==NUMREG");
|
rel.add(LF_MOV, "NUMREG==NUMREG");
|
||||||
|
const TRectype& mov = rel.curr(LF_MOV);
|
||||||
|
|
||||||
TRectype& rmov = rel.curr();
|
TRectype& rmov = rel.curr();
|
||||||
// const TRectype& mov = rel.curr(LF_MOV);
|
|
||||||
|
|
||||||
rmov.zero();
|
rmov.zero();
|
||||||
rmov.put(RMV_GRUPPO, _gruppo);
|
rmov.put(RMV_GRUPPO, _gruppo);
|
||||||
@ -2944,52 +2951,40 @@ void TMastrini_application::calcola_progressivi_al(const TDate& data_fin)
|
|||||||
TCursor cur(&rel, "", 2, &rmov, &rmov);
|
TCursor cur(&rel, "", 2, &rmov, &rmov);
|
||||||
const long items = cur.items();
|
const long items = cur.items();
|
||||||
cur.freeze();
|
cur.freeze();
|
||||||
|
|
||||||
|
_totale_prima_dare = ZERO;
|
||||||
|
_totale_prima_avere = ZERO;
|
||||||
|
|
||||||
for (cur = 0L; cur.pos() < items; ++cur)
|
for (cur = 0L; cur.pos() < items; ++cur)
|
||||||
|
{
|
||||||
|
if (_stampa_mov_prov || mov.get(MOV_PROVVIS).blank())
|
||||||
{
|
{
|
||||||
const int annoes = rmov.get_int (RMV_ANNOES);
|
const int annoes = rmov.get_int (RMV_ANNOES);
|
||||||
TDate datareg = rmov.get_date(RMV_DATAREG);
|
const TDate datareg = mov.get_date(_annomsk ? MOV_DATACOMP : RMV_DATAREG);
|
||||||
|
|
||||||
|
//Legge movimenti con data > inizio esercizio e < data_fin
|
||||||
|
if (((annoes==_annomsk)||(_annomsk == 0))&&(datareg >= data_inizio)&&(datareg <= data_fin))
|
||||||
|
{
|
||||||
const char sezione = rmov.get_char(RMV_SEZIONE);
|
const char sezione = rmov.get_char(RMV_SEZIONE);
|
||||||
const real importo = rmov.get_real(RMV_IMPORTO);
|
const real importo = rmov.get_real(RMV_IMPORTO);
|
||||||
long numreg = rmov.get_long(RMV_NUMREG);
|
|
||||||
|
|
||||||
const TRectype & mov = cache().get(LF_MOV, numreg);
|
|
||||||
const TDate datacomp = (mov.get_date(MOV_DATACOMP));
|
|
||||||
TDate data;
|
|
||||||
const TString16 provvis (mov.get(MOV_PROVVIS));
|
|
||||||
|
|
||||||
|
|
||||||
if (_stampa_mov_prov || (!_stampa_mov_prov && provvis.blank()))
|
|
||||||
{
|
|
||||||
if (_annomsk == 0)
|
|
||||||
{
|
|
||||||
datareg = rmov.get_date(RMV_DATAREG);
|
|
||||||
data = _inizioes;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
datareg = datacomp;
|
|
||||||
data = _data_inizioese;
|
|
||||||
}
|
|
||||||
|
|
||||||
const int gruppo = rmov.get_int(RMV_GRUPPO);
|
|
||||||
const int conto = rmov.get_int(RMV_CONTO);
|
|
||||||
const long sottoc = rmov.get_long(RMV_SOTTOCONTO);
|
|
||||||
if ((gruppo != _gruppo)||(conto != _conto)||(sottoc != _sottoc))
|
|
||||||
break;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//Legge movimenti con data > inizio esercizio e < data_fin
|
|
||||||
if (((annoes==_annomsk)||(_annomsk == 0))&&(datareg >= data)&&(datareg <= data_fin))
|
|
||||||
if (sezione == 'D')
|
if (sezione == 'D')
|
||||||
_totale_prima_dare += importo;
|
_totale_prima_dare += importo;
|
||||||
else
|
else
|
||||||
_totale_prima_avere += importo;
|
_totale_prima_avere += importo;
|
||||||
}
|
}
|
||||||
} // if ((_stampa_mov_prov) || ((!_stampa_mov_prov) && (provvis.trim().empty())))
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Riposiziona rmov
|
// Riposiziona rmov
|
||||||
rmov_file.readat(record);
|
rmov_file.readat(record);
|
||||||
|
|
||||||
|
_last_year = _annomsk;
|
||||||
|
_last_date = data_fin;
|
||||||
|
_last_inizio = data_inizio;
|
||||||
|
_last_bill.set(_gruppo, _conto, _sottoc);
|
||||||
|
_last_provv = _stampa_mov_prov;
|
||||||
|
_last_dare = _totale_prima_dare;
|
||||||
|
_last_avere = _totale_prima_avere;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMastrini_application::calcola_progressivi(bool finali)
|
void TMastrini_application::calcola_progressivi(bool finali)
|
||||||
|
@ -15,6 +15,9 @@
|
|||||||
#define F_SOTTOCINI_CONTO 105
|
#define F_SOTTOCINI_CONTO 105
|
||||||
#define F_SOTTOCINI_CLIENTE 205
|
#define F_SOTTOCINI_CLIENTE 205
|
||||||
#define F_SOTTOCINI_FORN 305
|
#define F_SOTTOCINI_FORN 305
|
||||||
|
#define F_PAIVINI_CLIENTE 206
|
||||||
|
#define F_PAIVINI_FORN 306
|
||||||
|
|
||||||
#define F_TIPOCF_FINE 106
|
#define F_TIPOCF_FINE 106
|
||||||
#define F_GRUPPOFINE 107
|
#define F_GRUPPOFINE 107
|
||||||
#define F_CONTOFINE_CONTO 108
|
#define F_CONTOFINE_CONTO 108
|
||||||
@ -23,6 +26,9 @@
|
|||||||
#define F_SOTTOCFINE_CONTO 109
|
#define F_SOTTOCFINE_CONTO 109
|
||||||
#define F_SOTTOCFINE_CLIENTE 209
|
#define F_SOTTOCFINE_CLIENTE 209
|
||||||
#define F_SOTTOCFINE_FORN 309
|
#define F_SOTTOCFINE_FORN 309
|
||||||
|
#define F_PAIVFINE_CLIENTE 210
|
||||||
|
#define F_PAIVFINE_FORN 310
|
||||||
|
|
||||||
#define F_DESCRINI_CONTO 125
|
#define F_DESCRINI_CONTO 125
|
||||||
#define F_DESCRINI_CLIENTE 135
|
#define F_DESCRINI_CLIENTE 135
|
||||||
#define F_DESCRINI_FORN 145
|
#define F_DESCRINI_FORN 145
|
||||||
|
121
cg/cg3200a.uml
121
cg/cg3200a.uml
@ -33,20 +33,9 @@ BEGIN
|
|||||||
FLAGS "A"
|
FLAGS "A"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_TIPOCF_INI 25
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 3 "Ricerca "
|
|
||||||
ITEM " |Gruppo/conto/sottoconto"
|
|
||||||
MESSAGE HIDE,2@|HIDE,3@|SHOW,1@
|
|
||||||
ITEM "C|Clienti"
|
|
||||||
MESSAGE HIDE,1@|HIDE,3@|SHOW,2@
|
|
||||||
ITEM "F|Fornitori"
|
|
||||||
MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_ANNO 4
|
NUMBER F_ANNO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 55 3 "Esercizio "
|
PROMPT 51 2 "Esercizio "
|
||||||
USE ESC
|
USE ESC
|
||||||
INPUT CODTAB F_ANNO
|
INPUT CODTAB F_ANNO
|
||||||
DISPLAY "Codice Esercizio" CODTAB
|
DISPLAY "Codice Esercizio" CODTAB
|
||||||
@ -60,15 +49,26 @@ BEGIN
|
|||||||
ADD NONE
|
ADD NONE
|
||||||
END
|
END
|
||||||
|
|
||||||
|
LIST F_TIPOCF_INI 25
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 3 "Ricerca "
|
||||||
|
ITEM " |Gruppo/conto/sottoconto"
|
||||||
|
MESSAGE HIDE,2@|HIDE,3@|SHOW,1@
|
||||||
|
ITEM "C|Clienti"
|
||||||
|
MESSAGE HIDE,1@|HIDE,3@|SHOW,2@
|
||||||
|
ITEM "F|Fornitori"
|
||||||
|
MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER F_GRUPPOINI 3
|
NUMBER F_GRUPPOINI 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Da Gruppo - Conto - Sottoconto "
|
PROMPT 1 4 "Dal Conto "
|
||||||
GROUP 9
|
GROUP 9
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CONTOINI_CONTO 3
|
NUMBER F_CONTOINI_CONTO 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 39 4 ""
|
PROMPT 22 4 ""
|
||||||
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")
|
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")
|
||||||
INPUT GRUPPO F_GRUPPOINI
|
INPUT GRUPPO F_GRUPPOINI
|
||||||
INPUT CONTO F_CONTOINI_CONTO
|
INPUT CONTO F_CONTOINI_CONTO
|
||||||
@ -87,7 +87,7 @@ END
|
|||||||
|
|
||||||
NUMBER F_SOTTOCINI_CONTO 6
|
NUMBER F_SOTTOCINI_CONTO 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 48 4 ""
|
PROMPT 29 4 ""
|
||||||
USE LF_PCON SELECT SOTTOCONTO!=""
|
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||||
INPUT GRUPPO F_GRUPPOINI
|
INPUT GRUPPO F_GRUPPOINI
|
||||||
INPUT CONTO F_CONTOINI_CONTO
|
INPUT CONTO F_CONTOINI_CONTO
|
||||||
@ -120,7 +120,7 @@ END
|
|||||||
|
|
||||||
NUMBER F_SOTTOCINI_CLIENTE 6
|
NUMBER F_SOTTOCINI_CLIENTE 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 48 4 ""
|
PROMPT 29 4 ""
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
@ -129,12 +129,31 @@ BEGIN
|
|||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
OUTPUT F_SOTTOCINI_CLIENTE CODCF
|
OUTPUT F_SOTTOCINI_CLIENTE CODCF
|
||||||
OUTPUT F_DESCRINI_CLIENTE RAGSOC
|
OUTPUT F_DESCRINI_CLIENTE RAGSOC
|
||||||
|
OUTPUT F_PAIVINI_CLIENTE PAIV
|
||||||
MESSAGE COPY,F_SOTTOCINI_CONTO
|
MESSAGE COPY,F_SOTTOCINI_CONTO
|
||||||
GROUP 2 9
|
GROUP 2 9
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_PAIVINI_CLIENTE 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 43 4 "Partita IVA "
|
||||||
|
USE LF_CLIFO KEY 5
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Cliente inesistente o mancante"
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT PAIV F_PAIVINI_CLIENTE
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT F_SOTTOCINI_CLIENTE
|
||||||
|
GROUP 2 9
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_DESCRINI_CLIENTE 50
|
STRING F_DESCRINI_CLIENTE 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 "Ragione sociale "
|
PROMPT 1 5 "Ragione sociale "
|
||||||
@ -153,7 +172,7 @@ END
|
|||||||
|
|
||||||
NUMBER F_SOTTOCINI_FORN 6
|
NUMBER F_SOTTOCINI_FORN 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 48 4 ""
|
PROMPT 29 4 ""
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
@ -162,13 +181,31 @@ BEGIN
|
|||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
OUTPUT F_SOTTOCINI_FORN CODCF
|
OUTPUT F_SOTTOCINI_FORN CODCF
|
||||||
OUTPUT F_DESCRINI_FORN RAGSOC
|
OUTPUT F_DESCRINI_FORN RAGSOC
|
||||||
FLAGS "R"
|
OUTPUT F_PAIVINI_FORN PAIV
|
||||||
GROUP 3 9
|
GROUP 3 9
|
||||||
MESSAGE COPY,F_SOTTOCINI_CONTO
|
MESSAGE COPY,F_SOTTOCINI_CONTO
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_PAIVINI_FORN 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 43 4 "Partita IVA "
|
||||||
|
USE LF_CLIFO KEY 5
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Fornitore inesistente o mancante"
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT PAIV F_PAIVINI_FORN
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT F_SOTTOCINI_FORN
|
||||||
|
GROUP 3 9
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_DESCRINI_FORN 50
|
STRING F_DESCRINI_FORN 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 "Ragione Sociale "
|
PROMPT 1 5 "Ragione Sociale "
|
||||||
@ -197,13 +234,13 @@ END
|
|||||||
|
|
||||||
NUMBER F_GRUPPOFINE 3
|
NUMBER F_GRUPPOFINE 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "A Gruppo - Conto - Sottoconto "
|
PROMPT 1 7 "Al Conto "
|
||||||
GROUP 9
|
GROUP 9
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CONTOFINE_CONTO 3
|
NUMBER F_CONTOFINE_CONTO 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 39 7 ""
|
PROMPT 22 7 ""
|
||||||
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="") /* &&(TMCF="") */
|
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="") /* &&(TMCF="") */
|
||||||
INPUT GRUPPO F_GRUPPOFINE
|
INPUT GRUPPO F_GRUPPOFINE
|
||||||
INPUT CONTO F_CONTOFINE_CONTO
|
INPUT CONTO F_CONTOFINE_CONTO
|
||||||
@ -223,7 +260,7 @@ END
|
|||||||
|
|
||||||
NUMBER F_SOTTOCFINE_CONTO 6
|
NUMBER F_SOTTOCFINE_CONTO 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 48 7 ""
|
PROMPT 29 7 ""
|
||||||
USE LF_PCON SELECT SOTTOCONTO!=""
|
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||||
INPUT GRUPPO F_GRUPPOFINE
|
INPUT GRUPPO F_GRUPPOFINE
|
||||||
INPUT CONTO F_CONTOFINE_CONTO
|
INPUT CONTO F_CONTOFINE_CONTO
|
||||||
@ -257,7 +294,7 @@ END
|
|||||||
|
|
||||||
NUMBER F_SOTTOCFINE_CLIENTE 6
|
NUMBER F_SOTTOCFINE_CLIENTE 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 48 7 ""
|
PROMPT 29 7 ""
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Cliente inesistente o mancante"
|
WARNING "Cliente inesistente o mancante"
|
||||||
@ -265,14 +302,33 @@ BEGIN
|
|||||||
INPUT CODCF F_SOTTOCFINE_CLIENTE
|
INPUT CODCF F_SOTTOCFINE_CLIENTE
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
OUTPUT F_SOTTOCFINE_CLIENTE CODCF
|
OUTPUT F_SOTTOCFINE_CLIENTE CODCF
|
||||||
OUTPUT F_DESCRFINE_CLIENTE RAGSOC
|
OUTPUT F_DESCRFINE_CLIENTE RAGSOC
|
||||||
|
OUTPUT F_PAIVFINE_CLIENTE PAIV
|
||||||
MESSAGE COPY,F_SOTTOCFINE_CONTO
|
MESSAGE COPY,F_SOTTOCFINE_CONTO
|
||||||
GROUP 5 9
|
GROUP 5 9
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_PAIVFINE_CLIENTE 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 43 7 "Partita IVA "
|
||||||
|
USE LF_CLIFO KEY 5
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Cliente inesistente o mancante"
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT PAIV F_PAIVFINE_CLIENTE
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT F_SOTTOCFINE_CLIENTE
|
||||||
|
GROUP 5 9
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_DESCRFINE_CLIENTE 50
|
STRING F_DESCRFINE_CLIENTE 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 8 "Ragione sociale "
|
PROMPT 1 8 "Ragione sociale "
|
||||||
@ -292,7 +348,7 @@ END
|
|||||||
|
|
||||||
NUMBER F_SOTTOCFINE_FORN 6
|
NUMBER F_SOTTOCFINE_FORN 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 48 7 ""
|
PROMPT 29 7 ""
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Fornitore inesistente o mancante"
|
WARNING "Fornitore inesistente o mancante"
|
||||||
@ -300,14 +356,33 @@ BEGIN
|
|||||||
INPUT CODCF F_SOTTOCFINE_FORN
|
INPUT CODCF F_SOTTOCFINE_FORN
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
OUTPUT F_SOTTOCFINE_FORN CODCF
|
OUTPUT F_SOTTOCFINE_FORN CODCF
|
||||||
OUTPUT F_DESCRFINE_FORN RAGSOC
|
OUTPUT F_DESCRFINE_FORN RAGSOC
|
||||||
|
OUTPUT F_PAIVFINE_FORN PAIV
|
||||||
MESSAGE COPY,F_SOTTOCFINE_CONTO
|
MESSAGE COPY,F_SOTTOCFINE_CONTO
|
||||||
GROUP 6 9
|
GROUP 6 9
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_PAIVFINE_FORN 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 43 7 "Partita IVA "
|
||||||
|
USE LF_CLIFO KEY 5
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Cliente inesistente o mancante"
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT PAIV F_PAIVFINE_CLIENTE
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT F_SOTTOCFINE_FORN
|
||||||
|
GROUP 6 9
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_DESCRFINE_FORN 50
|
STRING F_DESCRFINE_FORN 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 8 "Ragione Sociale "
|
PROMPT 1 8 "Ragione Sociale "
|
||||||
|
@ -7,10 +7,17 @@
|
|||||||
#define F_DESCONTO 107
|
#define F_DESCONTO 107
|
||||||
#define F_SOTTOCONTO 108
|
#define F_SOTTOCONTO 108
|
||||||
#define F_DESSOTTOC 109
|
#define F_DESSOTTOC 109
|
||||||
|
|
||||||
#define F_CLIENTE 206
|
#define F_CLIENTE 206
|
||||||
#define F_RAGSOCCLI 207
|
#define F_RAGSOCCLI 207
|
||||||
|
#define F_PAIVCLI 208
|
||||||
|
#define F_COFICLI 209
|
||||||
|
|
||||||
#define F_FORNITORE 306
|
#define F_FORNITORE 306
|
||||||
#define F_RAGSOCFOR 307
|
#define F_RAGSOCFOR 307
|
||||||
|
#define F_PAIVFOR 308
|
||||||
|
#define F_COFIFOR 309
|
||||||
|
|
||||||
#define F_ESERCIZIO 110
|
#define F_ESERCIZIO 110
|
||||||
#define F_DADATA 111
|
#define F_DADATA 111
|
||||||
#define F_ADATA 112
|
#define F_ADATA 112
|
||||||
|
@ -46,7 +46,7 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 6
|
GROUPBOX DLG_NULL 76 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "@bConto del mastrino"
|
PROMPT 1 4 "@bConto del mastrino"
|
||||||
FLAGS "R"
|
FLAGS "R"
|
||||||
@ -122,6 +122,8 @@ BEGIN
|
|||||||
DISPLAY "Codice Fiscale" COFI
|
DISPLAY "Codice Fiscale" COFI
|
||||||
OUTPUT F_CLIENTE CODCF
|
OUTPUT F_CLIENTE CODCF
|
||||||
OUTPUT F_RAGSOCCLI RAGSOC
|
OUTPUT F_RAGSOCCLI RAGSOC
|
||||||
|
OUTPUT F_PAIVCLI PAIV
|
||||||
|
OUTPUT F_COFICLI COFI
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
WARNING "Cliente assente"
|
WARNING "Cliente assente"
|
||||||
GROUP 2 4
|
GROUP 2 4
|
||||||
@ -136,6 +138,8 @@ BEGIN
|
|||||||
COPY DISPLAY F_CLIENTE
|
COPY DISPLAY F_CLIENTE
|
||||||
OUTPUT F_FORNITORE CODCF
|
OUTPUT F_FORNITORE CODCF
|
||||||
OUTPUT F_RAGSOCFOR RAGSOC
|
OUTPUT F_RAGSOCFOR RAGSOC
|
||||||
|
OUTPUT F_PAIVFOR PAIV
|
||||||
|
OUTPUT F_COFIFOR COFI
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
WARNING "Fornitore assente"
|
WARNING "Fornitore assente"
|
||||||
GROUP 3 4
|
GROUP 3 4
|
||||||
@ -208,15 +212,75 @@ BEGIN
|
|||||||
GROUP 3 4
|
GROUP 3 4
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_COFICLI 16
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Codice Fiscale "
|
||||||
|
USE LF_CLIFO KEY 4
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT COFI F_COFICLI
|
||||||
|
DISPLAY "Codice Fiscale" COFI
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
COPY OUTPUT F_CLIENTE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 2 4
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_PAIVCLI 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 49 9 "Partita IVA "
|
||||||
|
USE LF_CLIFO KEY 5
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT PAIV F_PAIVCLI
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Codice Fiscale" COFI
|
||||||
|
COPY OUTPUT F_CLIENTE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 2 4
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_COFIFOR 16
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Codice Fiscale "
|
||||||
|
USE LF_CLIFO KEY 4
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT COFI F_COFIFOR
|
||||||
|
DISPLAY "Codice Fiscale" COFI
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
COPY OUTPUT F_FORNITORE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 3 4
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_PAIVFOR 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 49 9 "Partita IVA "
|
||||||
|
USE LF_CLIFO KEY 5
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT PAIV F_PAIVFOR
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Codice Fiscale" COFI
|
||||||
|
COPY OUTPUT F_FORNITORE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 3 4
|
||||||
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 4
|
GROUPBOX DLG_NULL 76 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 "@bPeriodo"
|
PROMPT 1 11 "@bPeriodo"
|
||||||
FLAGS "R"
|
FLAGS "R"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ESERCIZIO 4
|
NUMBER F_ESERCIZIO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 "Cod. esercizio "
|
PROMPT 2 12 "Cod. esercizio "
|
||||||
FLAGS "Z"
|
FLAGS "Z"
|
||||||
USE ESC
|
USE ESC
|
||||||
INPUT CODTAB F_ESERCIZIO
|
INPUT CODTAB F_ESERCIZIO
|
||||||
@ -230,35 +294,35 @@ END
|
|||||||
|
|
||||||
DATE F_DADATA
|
DATE F_DADATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 26 11 "Dalla data "
|
PROMPT 26 12 "Dalla data "
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_ADATA
|
DATE F_ADATA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 52 11 "Alla data "
|
PROMPT 52 12 "Alla data "
|
||||||
VALIDATE DATE_CMP_FUNC >= F_DADATA
|
VALIDATE DATE_CMP_FUNC >= F_DADATA
|
||||||
WARNING "La data finale deve essere maggiore di quella iniziale"
|
WARNING "La data finale deve essere maggiore di quella iniziale"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_PROVVIS
|
BOOLEAN F_PROVVIS
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 12 "Includi movimenti provvisori"
|
PROMPT 2 13 "Includi movimenti provvisori"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_END
|
BOOLEAN F_END
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 40 12 "Posizionamento in fondo al mastrino"
|
PROMPT 40 13 "Posizionamento in fondo al mastrino"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 5
|
GROUPBOX DLG_NULL 76 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 14 "@bCausali"
|
PROMPT 1 15 "@bCausali"
|
||||||
FLAGS "R"
|
FLAGS "R"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DACAUSALE 3
|
STRING F_DACAUSALE 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 15 "Da causale "
|
PROMPT 2 16 "Da causale "
|
||||||
FLAGS "UZ"
|
FLAGS "UZ"
|
||||||
USE LF_CAUSALI
|
USE LF_CAUSALI
|
||||||
INPUT CODCAUS F_DACAUSALE
|
INPUT CODCAUS F_DACAUSALE
|
||||||
@ -274,7 +338,7 @@ END
|
|||||||
|
|
||||||
STRING F_DADESCAUS 50
|
STRING F_DADESCAUS 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 23 15 ""
|
PROMPT 23 16 ""
|
||||||
USE LF_CAUSALI KEY 2
|
USE LF_CAUSALI KEY 2
|
||||||
INPUT DESCR F_DADESCAUS
|
INPUT DESCR F_DADESCAUS
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
@ -286,7 +350,7 @@ END
|
|||||||
|
|
||||||
STRING F_ACAUSALE 3
|
STRING F_ACAUSALE 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 16 "A causale "
|
PROMPT 2 17 "A causale "
|
||||||
FLAGS "UZ"
|
FLAGS "UZ"
|
||||||
COPY USE F_DACAUSALE
|
COPY USE F_DACAUSALE
|
||||||
INPUT CODCAUS F_ACAUSALE
|
INPUT CODCAUS F_ACAUSALE
|
||||||
@ -301,7 +365,7 @@ END
|
|||||||
|
|
||||||
STRING F_ADESCAUS 50
|
STRING F_ADESCAUS 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 23 16 ""
|
PROMPT 23 17 ""
|
||||||
COPY USE F_DADESCAUS
|
COPY USE F_DADESCAUS
|
||||||
INPUT DESCR F_ADESCAUS
|
INPUT DESCR F_ADESCAUS
|
||||||
COPY DISPLAY F_DADESCAUS
|
COPY DISPLAY F_DADESCAUS
|
||||||
@ -312,7 +376,7 @@ END
|
|||||||
|
|
||||||
BOOLEAN F_ST_CONTSEP
|
BOOLEAN F_ST_CONTSEP
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 17 "Visualizzare contabilità separata"
|
PROMPT 2 18 "Visualizzare contabilità separata"
|
||||||
MODULE NP
|
MODULE NP
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -24,7 +24,8 @@
|
|||||||
|
|
||||||
#include "cglib02.h"
|
#include "cglib02.h"
|
||||||
|
|
||||||
struct therec {
|
struct therec
|
||||||
|
{
|
||||||
char DATAREG[9];
|
char DATAREG[9];
|
||||||
char REG[4];
|
char REG[4];
|
||||||
char DATADOC[9];
|
char DATADOC[9];
|
||||||
@ -44,9 +45,6 @@ public:
|
|||||||
|
|
||||||
void sort_all();
|
void sort_all();
|
||||||
bool sort_sal();
|
bool sort_sal();
|
||||||
|
|
||||||
CG4100_App() {}
|
|
||||||
virtual ~CG4100_App() {}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
bool CG4100_App::set_parms()
|
bool CG4100_App::set_parms()
|
||||||
@ -58,10 +56,8 @@ bool CG4100_App::set_parms()
|
|||||||
|
|
||||||
void CG4100_App::main_loop()
|
void CG4100_App::main_loop()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (fexist("__sal__.sav"))
|
if (fexist("__sal__.sav"))
|
||||||
warning_box(TR("Un'operazione di riordino saldi si e' conclusa"
|
warning_box(TR("Un'operazione di riordino saldi si e' conclusa impropriamente. Si raccomanda di rieseguirla"));
|
||||||
" impropriamente. Si raccomanda di rieseguirla"));
|
|
||||||
|
|
||||||
_msk = new TMask("cg4100b");
|
_msk = new TMask("cg4100b");
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ bool _Iva11Array::add(const real& val, const char* fld_name, int num_file)
|
|||||||
|
|
||||||
bool _Iva11Array::sub(const real& val, const char* fld_name, int num_file)
|
bool _Iva11Array::sub(const real& val, const char* fld_name, int num_file)
|
||||||
{
|
{
|
||||||
const real v1 = val * (-1.0);
|
const real v1 = -val;
|
||||||
return add(v1,fld_name, num_file);
|
return add(v1,fld_name, num_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,21 +51,26 @@ void _Iva11Array::zero(const char* fld_name)
|
|||||||
// se la % prorata relativa all'anno indicato non esiste, ritorna 0
|
// se la % prorata relativa all'anno indicato non esiste, ritorna 0
|
||||||
real _ProrataItem::calc_prorata(const real& acq, const char* year)
|
real _ProrataItem::calc_prorata(const real& acq, const char* year)
|
||||||
{
|
{
|
||||||
const real* perc = (const real*)_percentuali.objptr(year);
|
real prorata;
|
||||||
if (perc)
|
const real& perc = percentuale(year);
|
||||||
|
if (perc != INVALID_PRORATA && perc > ZERO)
|
||||||
{
|
{
|
||||||
real prorata = acq * (*perc) / CENTO;
|
if (perc < CENTO)
|
||||||
|
{
|
||||||
|
prorata = acq * perc / CENTO;
|
||||||
prorata.round(TCurrency::get_firm_dec());
|
prorata.round(TCurrency::get_firm_dec());
|
||||||
return prorata;
|
|
||||||
}
|
}
|
||||||
return ZERO;
|
else
|
||||||
|
prorata = acq;
|
||||||
|
}
|
||||||
|
return prorata;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ritorna la % prorata relativa all'anno indicato. Se non esiste internamente
|
// Ritorna la % prorata relativa all'anno indicato. Se non esiste internamente
|
||||||
// viene ritornato INVALID_PRORATA
|
// viene ritornato INVALID_PRORATA
|
||||||
const real& _ProrataItem::percentuale(const char* year) const
|
const real& _ProrataItem::percentuale(const char* year) const
|
||||||
{
|
{
|
||||||
const real* p = (real*)_percentuali.objptr(year);
|
const real* p = (const real*)_percentuali.objptr(year);
|
||||||
if (p && !p->is_zero())
|
if (p && !p->is_zero())
|
||||||
return *p;
|
return *p;
|
||||||
return INVALID_PRORATA;
|
return INVALID_PRORATA;
|
||||||
@ -616,9 +621,10 @@ void TLiquidazione_app::build_nomiditte(TProgind* pnd)
|
|||||||
if (!look_lia(dt.get_long("CODDITTA")))
|
if (!look_lia(dt.get_long("CODDITTA")))
|
||||||
good = FALSE;
|
good = FALSE;
|
||||||
}
|
}
|
||||||
else continue;
|
else
|
||||||
|
continue;
|
||||||
|
|
||||||
TToken_string* d = new TToken_string(64);
|
TToken_string* d = new TToken_string(63);
|
||||||
|
|
||||||
// add record
|
// add record
|
||||||
d->add(dt.get("CODDITTA"));
|
d->add(dt.get("CODDITTA"));
|
||||||
@ -635,7 +641,8 @@ void TLiquidazione_app::build_nomiditte(TProgind* pnd)
|
|||||||
}
|
}
|
||||||
_nomiditte.add(d);
|
_nomiditte.add(d);
|
||||||
}
|
}
|
||||||
if (pnd) pnd->addstatus(1);
|
if (pnd)
|
||||||
|
pnd->addstatus(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TLiquidazione_app::to_ditt_handler(TMask_field& f, KEY key)
|
bool TLiquidazione_app::to_ditt_handler(TMask_field& f, KEY key)
|
||||||
|
@ -450,6 +450,7 @@ protected:
|
|||||||
static bool chk_final_handler(TMask_field& f, KEY key);
|
static bool chk_final_handler(TMask_field& f, KEY key);
|
||||||
|
|
||||||
static TLiquidazione_app& app() { return (TLiquidazione_app&)main_app(); }
|
static TLiquidazione_app& app() { return (TLiquidazione_app&)main_app(); }
|
||||||
|
bool print_diff_log(int& rw);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
218
cg/cg4301.cpp
218
cg/cg4301.cpp
@ -160,6 +160,12 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
|||||||
TConfig c(CONFIG_DITTA);
|
TConfig c(CONFIG_DITTA);
|
||||||
|
|
||||||
_isdiff = c.get_bool("GesLiqDiff");
|
_isdiff = c.get_bool("GesLiqDiff");
|
||||||
|
if (_isdiff)
|
||||||
|
{
|
||||||
|
TFilename tmp; tmp.tempdir();
|
||||||
|
tmp.add("liqdiff.txt");
|
||||||
|
ofstream log(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
if (month == 13 && recalc)
|
if (month == 13 && recalc)
|
||||||
{
|
{
|
||||||
@ -546,7 +552,7 @@ void TLiquidazione_app::zero_att(int month, const char* codatt)
|
|||||||
for (_pia->first(); !_pia->eof(); _pia->next())
|
for (_pia->first(); !_pia->eof(); _pia->next())
|
||||||
{
|
{
|
||||||
const int m = atoi(*_pia_mese);
|
const int m = atoi(*_pia_mese);
|
||||||
const TString16 att = (const char*)*_pia_codatt;
|
const TString8 att = (const char*)*_pia_codatt;
|
||||||
if (m == month && att == codatt && (_year == *_pia_anno))
|
if (m == month && att == codatt && (_year == *_pia_anno))
|
||||||
{
|
{
|
||||||
_pia->put("R0",""); // Imponibile
|
_pia->put("R0",""); // Imponibile
|
||||||
@ -709,8 +715,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
TString8 fromreg("~"), toreg("0");
|
TString8 fromreg("~"), toreg("0");
|
||||||
|
|
||||||
{
|
{
|
||||||
TRelation * regrel = new TRelation("REG");
|
TRelation regrel("REG");
|
||||||
TCursor reg(regrel);
|
TCursor reg(®rel);
|
||||||
TString4 codreg;
|
TString4 codreg;
|
||||||
const int items = reg.items();
|
const int items = reg.items();
|
||||||
|
|
||||||
@ -723,8 +729,6 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
if (codreg > toreg)
|
if (codreg > toreg)
|
||||||
toreg = codreg;
|
toreg = codreg;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete regrel;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//TDate f(1, month == 13 ? 1 : month, year_int);
|
//TDate f(1, month == 13 ? 1 : month, year_int);
|
||||||
@ -813,17 +817,20 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
const bool fattrit = rcs.get_bool("RITFATT");
|
const bool fattrit = rcs.get_bool("RITFATT");
|
||||||
const bool cau_intra = rcs.get_bool("INTRACOM");
|
const bool cau_intra = rcs.get_bool("INTRACOM");
|
||||||
const bool cau_valintra = rcs.get_bool("VALINTRA");
|
const bool cau_valintra = rcs.get_bool("VALINTRA");
|
||||||
|
|
||||||
|
// Inizio gestione IVA differita
|
||||||
const bool movdiff = _isdiff && _mov->get_bool(MOV_LIQDIFF);
|
const bool movdiff = _isdiff && _mov->get_bool(MOV_LIQDIFF);
|
||||||
|
|
||||||
|
// Se c'è data incasso, normalmente vuol dire che: NO saldaconto e pagamento completo
|
||||||
TDate datainc = _mov->get_date(MOV_DATAINC);
|
TDate datainc = _mov->get_date(MOV_DATAINC);
|
||||||
|
|
||||||
if (movdiff && !datainc.ok())
|
if (movdiff && !datainc.ok())
|
||||||
{
|
{
|
||||||
const long codcf = _mov->get_long(MOV_CODCF);
|
const long codcf = _mov->get_long(MOV_CODCF);
|
||||||
TString8 key(_mov->get(MOV_TIPO)); key << "|" << codcf;
|
TString8 key(_mov->get(MOV_TIPO)); key << "|" << codcf;
|
||||||
const TRectype & clifo = cache().get(LF_CLIFO, key);
|
const TRectype & clifo = cache().get(LF_CLIFO, key);
|
||||||
|
|
||||||
if (clifo.get_int(CLI_ALLEG) < 7) // non e' un ente pubblico
|
// se non e' un ente pubblico forzo data incasso un anno dopo il documento
|
||||||
|
if (clifo.get_int(CLI_ALLEG) < 7)
|
||||||
{
|
{
|
||||||
datainc = _mov->get_date(MOV_DATADOC);
|
datainc = _mov->get_date(MOV_DATADOC);
|
||||||
if (datainc.ok())
|
if (datainc.ok())
|
||||||
@ -831,70 +838,67 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// datainc_ok significa che la data incasso è compresa nel periodo di liquidazione in corso di calcolo
|
||||||
bool datainc_ok = is_date_ok(datainc, month, liqmonth, year_int);
|
bool datainc_ok = is_date_ok(datainc, month, liqmonth, year_int);
|
||||||
const bool diffpayed = movdiff && datainc_ok;
|
const bool diffpayed = movdiff && datainc_ok;
|
||||||
const bool difftopay = movdiff && !diffpayed;
|
const bool difftopay = movdiff && !diffpayed;
|
||||||
|
|
||||||
|
// Se ho fatto un pagamento differito porto la data di registrazione alla data incasso
|
||||||
if (diffpayed)
|
if (diffpayed)
|
||||||
date = datainc;
|
date = datainc;
|
||||||
|
|
||||||
real pagatt;
|
real totfat, pagatt, ncatt;
|
||||||
real ncatt;
|
|
||||||
real totfat;
|
|
||||||
TImporto pagprec;
|
|
||||||
TImporto pag;
|
|
||||||
TImporto ncprec;
|
|
||||||
TImporto nc;
|
|
||||||
bool dok = is_date_ok(date, month, liqmonth, year_int);
|
bool dok = is_date_ok(date, month, liqmonth, year_int);
|
||||||
TPartite_array arrpart;
|
|
||||||
|
TPartite_array arrpart; // Partite interessate
|
||||||
|
TPointer_array pagscatt; // Righe di pagsca interessate
|
||||||
|
|
||||||
const long numreg = _mov->get_long(MOV_NUMREG);
|
const long numreg = _mov->get_long(MOV_NUMREG);
|
||||||
|
|
||||||
|
// In presenza di saldaconto determino meglio la data incasso in base alle righe di pagamento
|
||||||
if (has_sc && movdiff && (!datainc.ok() || datainc > inizio))
|
if (has_sc && movdiff && (!datainc.ok() || datainc > inizio))
|
||||||
{
|
{
|
||||||
arrpart.add_numreg(numreg);
|
//arrpart.add_numreg(numreg);
|
||||||
if (arrpart.utilizzata(numreg, 1))
|
//if (arrpart.utilizzata(numreg, 1))
|
||||||
|
if (arrpart.add_numreg(numreg)) // Ovviamente più efficiente di quanto sopra
|
||||||
{
|
{
|
||||||
const int items = arrpart.items();
|
// Sezione preferita per fatture decisa in base a vendita->'A' o acquisto->'D'
|
||||||
const char sez = (tipomov == vendita ? 'A' : 'D');
|
const char sezfat = tipomov == vendita ? 'D' : 'A';
|
||||||
|
const char sezpag = tipomov == vendita ? 'A' : 'D';
|
||||||
for (TPartita * p = arrpart.first(); p != NULL; p = arrpart.next())
|
for (TPartita * p = arrpart.first(); p != NULL; p = arrpart.next())
|
||||||
{
|
{
|
||||||
int row = p->mov2rig(numreg, 1);
|
const int row = p->mov2rig(numreg, 0);
|
||||||
|
if (row > 0)
|
||||||
if (row >= 0)
|
|
||||||
{
|
{
|
||||||
const TRiga_partite& rp = p->riga(row);
|
const TRiga_partite& rp = p->riga(row);
|
||||||
TImporto importo(rp.get_char(PART_SEZ), rp.get_real(PART_IMPORTO)); importo.normalize(); importo.swap_section();
|
TImporto pg, nc;
|
||||||
|
TDate lastpg, lastnc;
|
||||||
totfat += importo.valore();
|
const int flag = rp.calcola_pagato_periodo(inizio+1L, fine, pg, nc, &pagscatt);
|
||||||
pagprec += rp.calcola_pagato_al(false, inizio, inizio, inizio); pagprec.normalize(sez);
|
if (flag)
|
||||||
pag += rp.calcola_pagato_al(false, fine, fine, fine); pag.normalize(sez);
|
{
|
||||||
|
TImporto importo = rp.importo(false, 0x1);
|
||||||
// Inizio aggiunte di Bonazzi del 16/02/2012
|
importo.normalize(sezfat);
|
||||||
ncprec += rp.calcola_pagato_al(false, inizio, inizio, inizio, 0x1F); ncprec.normalize(sez);
|
totfat = importo.valore();
|
||||||
nc += rp.calcola_pagato_al(false, fine, fine, fine, 0x1F); nc.normalize(sez);
|
CHECK(totfat >= ZERO, "Fattura negativa inattesa qui");
|
||||||
// Fine aggiunte di Bonazzi del 16/02/2012
|
if (flag & 1)
|
||||||
|
{
|
||||||
|
pg.normalize(sezpag);
|
||||||
|
pagatt += pg.valore();
|
||||||
|
}
|
||||||
|
if (flag & 2)
|
||||||
|
{
|
||||||
|
nc.normalize(sezpag);
|
||||||
|
ncatt += nc.valore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((diffpayed && dok) || (pag.valore() > totfat))
|
}
|
||||||
pag.set(sez, totfat);
|
}
|
||||||
pagatt = pag.valore() - pagprec.valore();
|
if ((diffpayed && dok) || (pagatt > totfat))
|
||||||
|
pagatt = totfat;
|
||||||
// Spostato sotto 26/03/2012
|
|
||||||
//if (pagatt > ZERO)
|
|
||||||
// dok = true;
|
|
||||||
|
|
||||||
// Inizio aggiunte di Bonazzi del 16/02/2012
|
|
||||||
ncatt = nc.valore() - ncprec.valore();
|
|
||||||
pagatt -= ncatt;
|
|
||||||
// Fine aggiunte di Bonazzi del 16/02/2012
|
|
||||||
|
|
||||||
if (pagatt > ZERO)
|
if (pagatt > ZERO)
|
||||||
dok = true;
|
dok = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* check register present, rmoviva present and date OK
|
* check register present, rmoviva present and date OK
|
||||||
*
|
*
|
||||||
@ -907,10 +911,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
const bool sreg = !isreg;
|
const bool sreg = !isreg;
|
||||||
const bool rs8 = _reg->get("S8") != trueatt;
|
const bool rs8 = _reg->get("S8") != trueatt;
|
||||||
const bool cmt = !_cur->is_first_match(LF_RMOVIVA);
|
const bool cmt = !_cur->is_first_match(LF_RMOVIVA);
|
||||||
// const bool dok1 = dok || diffpayed;
|
|
||||||
|
|
||||||
if (!dok || sreg || rs8 || cmt)
|
if (!dok || sreg || rs8 || cmt)
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const tipo_sospensione sosp_imp = _reg->get_bool("B1") ? (tipo_sospensione) _reg->get_int("I9") : nessuna;
|
const tipo_sospensione sosp_imp = _reg->get_bool("B1") ? (tipo_sospensione) _reg->get_int("I9") : nessuna;
|
||||||
@ -964,10 +966,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
real nin_iva = ZERO; // imposta non incassati
|
real nin_iva = ZERO; // imposta non incassati
|
||||||
|
|
||||||
look_iva(_rmoviva->get(RMI_CODIVA));
|
look_iva(_rmoviva->get(RMI_CODIVA));
|
||||||
TString4 codiva = _iva->get("CODTAB");
|
const TString4 codiva = _iva->get("CODTAB");
|
||||||
TString4 tipoiva = _iva->get("S1");
|
const TString4 tipoiva = _iva->get("S1");
|
||||||
TString8 tipoes_v = _iva->get("S2");
|
const TString8 tipoes_v = _iva->get("S2");
|
||||||
TString8 tipoes_a = _iva->get("S9");
|
const TString8 tipoes_a = _iva->get("S9");
|
||||||
const int tipoagr = _iva->get_int("S4");
|
const int tipoagr = _iva->get_int("S4");
|
||||||
const int tipoag = _iva->get_int("S5");
|
const int tipoag = _iva->get_int("S5");
|
||||||
const int tipopla = _iva->get_int("S3");
|
const int tipopla = _iva->get_int("S3");
|
||||||
@ -975,7 +977,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
const real perciva = _iva->get_real("R0") / CENTO;
|
const real perciva = _iva->get_real("R0") / CENTO;
|
||||||
int ivarimb = !_iva->get_bool("B4"); // non escluso calcolo rimb. per al. media
|
int ivarimb = !_iva->get_bool("B4"); // non escluso calcolo rimb. per al. media
|
||||||
|
|
||||||
const TString8 tipocr_s = _rmoviva->get(RMI_TIPOCR);
|
const TString4 tipocr_s = _rmoviva->get(RMI_TIPOCR);
|
||||||
const int tipocr = atoi(tipocr_s);
|
const int tipocr = atoi(tipocr_s);
|
||||||
const bool intra = _rmoviva->get_bool(RMI_INTRA);
|
const bool intra = _rmoviva->get_bool(RMI_INTRA);
|
||||||
|
|
||||||
@ -991,12 +993,11 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
const bool was_riv = (tipoiva != "NS") && (tipocr == 1 || tipocr ==5);
|
const bool was_riv = (tipoiva != "NS") && (tipocr == 1 || tipocr ==5);
|
||||||
real percind;
|
real percind;
|
||||||
const int tipoind = get_tipodet_from_rmi(_rmoviva->curr(), _mov->curr(), percind, true);
|
const int tipoind = get_tipodet_from_rmi(_rmoviva->curr(), _mov->curr(), percind, true);
|
||||||
|
const int decimals = TCurrency::get_firm_dec();
|
||||||
|
|
||||||
const real imponibile_orig = _rmoviva->get_real(RMI_IMPONIBILE);
|
const real imponibile_orig = _rmoviva->get_real(RMI_IMPONIBILE);
|
||||||
const real imposta_orig = _rmoviva->get_real(RMI_IMPOSTA);
|
const real imposta_orig = _rmoviva->get_real(RMI_IMPOSTA);
|
||||||
|
|
||||||
const int decimals = TCurrency::get_firm_dec();
|
|
||||||
|
|
||||||
real diff_imp; // Liquidazione differita imponibile
|
real diff_imp; // Liquidazione differita imponibile
|
||||||
real diff_iva; // Liquidazione differita imposta
|
real diff_iva; // Liquidazione differita imposta
|
||||||
real incdiff_imp; // Liquidazione differita incassate imponibile
|
real incdiff_imp; // Liquidazione differita incassate imponibile
|
||||||
@ -1008,14 +1009,11 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
|
|
||||||
if (pagatt > ZERO || ncatt > ZERO)
|
if (pagatt > ZERO || ncatt > ZERO)
|
||||||
{
|
{
|
||||||
if (pag.valore() >= totfat)
|
// Il totale dei pagamenti chiude la fattura?
|
||||||
|
if (pagatt >= totfat) // Calcolo del cavolo: dovrebbe guardare il saldo fattura, no?
|
||||||
{
|
{
|
||||||
TDate from(_mov->get(MOV_DATAREG));
|
TDate from(_mov->get(MOV_DATAREG));
|
||||||
real impprec;
|
real impprec, ivaprec, ncprec;
|
||||||
real ivaprec;
|
|
||||||
real ncprec;
|
|
||||||
real val;
|
|
||||||
|
|
||||||
if (month < 13)
|
if (month < 13)
|
||||||
{
|
{
|
||||||
TDate to(inizio);
|
TDate to(inizio);
|
||||||
@ -1042,30 +1040,20 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
|
|
||||||
for (TPartita* p = arrpart.first(); p != NULL; p = arrpart.next())
|
for (TPartita* p = arrpart.first(); p != NULL; p = arrpart.next())
|
||||||
{
|
{
|
||||||
int row = p->mov2rig(numreg, 1);
|
const int row = p->mov2rig(numreg, 1);
|
||||||
|
if (row > 0)
|
||||||
if (row >= 0)
|
|
||||||
{
|
{
|
||||||
TRiga_partite rp = p->riga(row);
|
const TRiga_partite& rp = p->riga(row);
|
||||||
|
rp.calcola_pagato_periodo(from+1L, endp, pagtmp, nctmp);
|
||||||
pagtmp += rp.calcola_pagato_al(false, endp, endp, endp, 9);
|
}
|
||||||
pagtmp -= rp.calcola_pagato_al(false, from, from, from, 9);
|
}
|
||||||
pagtmp.normalize(sez);
|
pagtmp.normalize(sez);
|
||||||
|
|
||||||
// Inizio aggiunte di Bonazzi del 16/02/2012
|
|
||||||
nctmp += rp.calcola_pagato_al(false, endp, endp, endp, 0x19);
|
|
||||||
nctmp -= rp.calcola_pagato_al(false, from, from, from, 0x19);
|
|
||||||
nctmp.normalize(sez);
|
|
||||||
pagtmp -= nctmp;
|
|
||||||
// Fine aggiunte di Bonazzi del 16/02/2012
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!pagtmp.is_zero())
|
if (!pagtmp.is_zero())
|
||||||
{
|
{
|
||||||
const real perc = pagtmp.valore() / totfat;
|
const real perc = pagtmp.valore() / totfat;
|
||||||
|
|
||||||
val = imponibile_orig * perc;
|
real val = imponibile_orig * perc;
|
||||||
val.round(TCurrency::get_firm_dec());
|
val.round(TCurrency::get_firm_dec());
|
||||||
impprec += val;
|
impprec += val;
|
||||||
val = imposta_orig * perc;
|
val = imposta_orig * perc;
|
||||||
@ -1089,22 +1077,14 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
TDate to(31,12, from.year());
|
TDate to(31,12, from.year());
|
||||||
const int items = arrpart.items();
|
const int items = arrpart.items();
|
||||||
const char sez = (tipomov == vendita ? 'A' : 'D');
|
const char sez = (tipomov == vendita ? 'A' : 'D');
|
||||||
TImporto pagtmp;
|
TImporto pagtmp, nctmp;
|
||||||
TImporto nctmp;
|
|
||||||
|
|
||||||
for (TPartita * p = arrpart.first(); p != NULL; p = arrpart.next())
|
for (TPartita * p = arrpart.first(); p != NULL; p = arrpart.next())
|
||||||
{
|
{
|
||||||
int row = p->mov2rig(numreg, 1);
|
const int row = p->mov2rig(numreg, 1);
|
||||||
|
|
||||||
if (row >= 0)
|
if (row >= 0)
|
||||||
{
|
{
|
||||||
TRiga_partite rp = p->riga(row);
|
const TRiga_partite& rp = p->riga(row);
|
||||||
|
rp.calcola_pagato_periodo(botime, to, pagtmp, nctmp);
|
||||||
pagtmp += rp.calcola_pagato_al(false, to, to, to, 9);
|
|
||||||
pagtmp.normalize(sez);
|
|
||||||
nctmp += rp.calcola_pagato_al(false, to, to, to, 0x19);
|
|
||||||
nctmp.normalize(sez);
|
|
||||||
pagtmp -= nctmp;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!pagtmp.is_zero())
|
if (!pagtmp.is_zero())
|
||||||
@ -1112,10 +1092,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
const real perc = pagtmp.valore() / totfat;
|
const real perc = pagtmp.valore() / totfat;
|
||||||
real val = imponibile_orig * perc;
|
real val = imponibile_orig * perc;
|
||||||
|
|
||||||
val.round(TCurrency::get_firm_dec());
|
val.round(decimals);
|
||||||
impprec = val;
|
impprec = val;
|
||||||
val = imposta_orig * perc;
|
val = imposta_orig * perc;
|
||||||
val.round(TCurrency::get_firm_dec());
|
val.round(decimals);
|
||||||
ivaprec = val;
|
ivaprec = val;
|
||||||
}
|
}
|
||||||
if (!nctmp.is_zero())
|
if (!nctmp.is_zero())
|
||||||
@ -1129,30 +1109,33 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
|
|
||||||
const real ncperc = ncatt / totfat;
|
const real ncperc = ncatt / totfat;
|
||||||
|
|
||||||
val = imponibile_orig * ncperc;
|
real val = imponibile_orig * ncperc;
|
||||||
val.round(TCurrency::get_firm_dec());
|
val.round(decimals);
|
||||||
diff_imp = -val;
|
diff_imp = -val;
|
||||||
incdiff_imp -= val;
|
incdiff_imp -= val;
|
||||||
val = imposta_orig * ncperc;
|
val = imposta_orig * ncperc;
|
||||||
val.round(TCurrency::get_firm_dec());
|
val.round(decimals);
|
||||||
diff_iva = -val;
|
diff_iva = -val;
|
||||||
incdiff_iva -= val;
|
incdiff_iva -= val;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{ // La fattura è ancora aperta
|
||||||
real perc = pagatt / totfat;
|
// Calcolo rapporto tra pagamento e totale fattura
|
||||||
|
const real perc = pagatt / totfat;
|
||||||
|
|
||||||
incdiff_imp = imponibile_orig * perc;
|
incdiff_imp = imponibile_orig * perc;
|
||||||
incdiff_imp.round(TCurrency::get_firm_dec());
|
incdiff_imp.round(decimals);
|
||||||
incdiff_iva = imposta_orig * perc;
|
incdiff_iva = imposta_orig * perc;
|
||||||
incdiff_iva.round(TCurrency::get_firm_dec());
|
incdiff_iva.round(decimals);
|
||||||
if (month == 13)
|
if (month == 13)
|
||||||
{
|
{
|
||||||
diff_imp = imponibile_orig - incdiff_imp;
|
diff_imp = imponibile_orig - incdiff_imp;
|
||||||
diff_iva = imposta_orig - incdiff_iva;
|
diff_iva = imposta_orig - incdiff_iva;
|
||||||
}
|
}
|
||||||
const real ncperc = ncatt / totfat;
|
|
||||||
|
|
||||||
|
/* Guy 08-08-2012: Mi pare una cosa inutile
|
||||||
|
// Calcolo rapporto tra nota credito e totale fattura
|
||||||
|
const real ncperc = ncatt / totfat;
|
||||||
real val = imponibile_orig * ncperc;
|
real val = imponibile_orig * ncperc;
|
||||||
val.round(TCurrency::get_firm_dec());
|
val.round(TCurrency::get_firm_dec());
|
||||||
diff_imp = -val;
|
diff_imp = -val;
|
||||||
@ -1161,16 +1144,34 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
val.round(TCurrency::get_firm_dec());
|
val.round(TCurrency::get_firm_dec());
|
||||||
diff_iva = -val;
|
diff_iva = -val;
|
||||||
incdiff_iva -= val;
|
incdiff_iva -= val;
|
||||||
}
|
*/
|
||||||
|
|
||||||
|
if (pagatt > ZERO && !pagscatt.empty())
|
||||||
|
{
|
||||||
|
TFilename tmp; tmp.tempdir();
|
||||||
|
tmp.add("liqdiff.txt");
|
||||||
|
ofstream log(tmp, ios_base::app);
|
||||||
|
|
||||||
|
const TRectype& rec = (TRectype&)pagscatt[pagscatt.last()];
|
||||||
|
const TPartita& par = arrpart.partita(rec);
|
||||||
|
const TRiga_partite& sum = par.riga(rec.get_int(PAGSCA_NRIGP));
|
||||||
|
|
||||||
|
log << codiva << '\t' << pagatt.string() << '\t'
|
||||||
|
<< incdiff_imp.string() << '\t' << incdiff_iva.string() << '\t'
|
||||||
|
<< sum.get(PART_NREG) << '\t' << sum.get_date(PART_DATAPAG) << '\t'
|
||||||
|
<< numreg << '\t' << date.string() << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
if (difftopay)
|
if (difftopay)
|
||||||
{
|
{
|
||||||
diff_imp = imponibile_orig;
|
diff_imp = imponibile_orig;
|
||||||
diff_iva = imposta_orig;
|
diff_iva = imposta_orig;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
if (diffpayed)
|
if (diffpayed)
|
||||||
{
|
{
|
||||||
incdiff_imp = imponibile_orig;
|
incdiff_imp = imponibile_orig;
|
||||||
@ -1179,7 +1180,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
else
|
else
|
||||||
analizza_IVA(imponibile_orig, imposta_orig, percind, corrisp, false, codiva,
|
analizza_IVA(imponibile_orig, imposta_orig, percind, corrisp, false, codiva,
|
||||||
impon_det, impos_det, impon_ind, impos_ind);
|
impon_det, impos_det, impon_ind, impos_ind);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// qui
|
// qui
|
||||||
for (int is_detraibile = 0; is_detraibile < 2; is_detraibile++)
|
for (int is_detraibile = 0; is_detraibile < 2; is_detraibile++)
|
||||||
@ -2025,10 +2027,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
if (tipomov == vendita)
|
if (tipomov == vendita)
|
||||||
{
|
{
|
||||||
// fatture a liquidazione differita
|
// fatture a liquidazione differita
|
||||||
tab->put("R26", tab->get_real("R26") + diff_imp);
|
tab->curr().add("R26", diff_imp);
|
||||||
tab->put("R27", tab->get_real("R27") + diff_iva);
|
tab->curr().add("R27", diff_iva);
|
||||||
tab->put("R28", tab->get_real("R28") + incdiff_imp);
|
tab->curr().add("R28", incdiff_imp);
|
||||||
tab->put("R29", tab->get_real("R29") + incdiff_iva);
|
tab->curr().add("R29", incdiff_iva);
|
||||||
fdiff_imp += diff_imp;
|
fdiff_imp += diff_imp;
|
||||||
fdiff_iva += diff_iva;
|
fdiff_iva += diff_iva;
|
||||||
fdiffinc_imp += incdiff_imp;
|
fdiffinc_imp += incdiff_imp;
|
||||||
|
@ -259,7 +259,7 @@ bool TLiquidazione_app::look_pim(int month, const char* codatt, const char* codr
|
|||||||
(*_pim_tipodet) = tipodet;
|
(*_pim_tipodet) = tipodet;
|
||||||
|
|
||||||
const TString80 s = _pim_r->get("CODTAB");
|
const TString80 s = _pim_r->get("CODTAB");
|
||||||
bool ok = _pim->read() == NOERR;
|
const bool ok = _pim->read() == NOERR;
|
||||||
if (!ok && create)
|
if (!ok && create)
|
||||||
{
|
{
|
||||||
_pim_r->zero();
|
_pim_r->zero();
|
||||||
|
@ -141,7 +141,7 @@ void TLiquidazione_app::describe_att(int month, const char* codatt,
|
|||||||
if (atts.items() == 1 && _isviaggio)
|
if (atts.items() == 1 && _isviaggio)
|
||||||
describe_viaggio(month, codatt);
|
describe_viaggio(month, codatt);
|
||||||
describe_pims(month,codatt,FALSE);
|
describe_pims(month,codatt,FALSE);
|
||||||
if (atoi(_year) > 1997) // Descrive anche i PIS se esistono
|
// if (atoi(_year) > 1997) // Descrive anche i PIS se esistono
|
||||||
describe_pims(month,codatt,TRUE);
|
describe_pims(month,codatt,TRUE);
|
||||||
if (atts.items() == 1)
|
if (atts.items() == 1)
|
||||||
describe_consistence(codatt);
|
describe_consistence(codatt);
|
||||||
@ -499,8 +499,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
|
|||||||
// L'ultimo parametro serve per calcolare i PIS (progressivi del periodo successivo)
|
// L'ultimo parametro serve per calcolare i PIS (progressivi del periodo successivo)
|
||||||
{
|
{
|
||||||
TToken_string atts(codatt);
|
TToken_string atts(codatt);
|
||||||
TString ref(atts.items() == 1 ? codatt : "ALL");
|
const TString8 ref(atts.items() == 1 ? codatt : "ALL");
|
||||||
const char* tmpatt;
|
|
||||||
int last = _descr_arr.last();
|
int last = _descr_arr.last();
|
||||||
bool issosp = false;
|
bool issosp = false;
|
||||||
real t0, t1, t2, t3, t4, t5, t26, t27, t28, t29, t30, t31, t32, t33;
|
real t0, t1, t2, t3, t4, t5, t26, t27, t28, t29, t30, t31, t32, t33;
|
||||||
@ -538,12 +537,14 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
|
|||||||
bool is_key;
|
bool is_key;
|
||||||
|
|
||||||
// Never mind the bollox
|
// Never mind the bollox
|
||||||
TString codtab, codreg, codiva, activity, anno;
|
TString80 codtab;
|
||||||
|
TString8 activity;
|
||||||
|
TString4 codreg, codiva, anno;
|
||||||
int mese;
|
int mese;
|
||||||
|
|
||||||
while ((tmpatt = atts.get()) != NULL)
|
FOR_EACH_TOKEN(atts, tmpatt)
|
||||||
{
|
{
|
||||||
TString att(tmpatt);
|
const TString8 att(tmpatt);
|
||||||
|
|
||||||
for (tab->first(); !tab->eof(); tab->next())
|
for (tab->first(); !tab->eof(); tab->next())
|
||||||
{
|
{
|
||||||
@ -569,17 +570,15 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
|
|||||||
real rit_imp(s1.get(0));
|
real rit_imp(s1.get(0));
|
||||||
real rit_iva(s1.get(1));
|
real rit_iva(s1.get(1));
|
||||||
|
|
||||||
// if (tipomov == vendita)
|
|
||||||
// {
|
|
||||||
diffimp = _pim->get_real("R26");
|
diffimp = _pim->get_real("R26");
|
||||||
diffiva = _pim->get_real("R27");
|
diffiva = _pim->get_real("R27");
|
||||||
diffincimp = _pim->get_real("R28");
|
diffincimp = _pim->get_real("R28");
|
||||||
diffinciva = _pim->get_real("R29");
|
diffinciva = _pim->get_real("R29");
|
||||||
|
|
||||||
diffimp_acq = _pim->get_real("R30");
|
diffimp_acq = _pim->get_real("R30");
|
||||||
diffiva_acq = _pim->get_real("R31");
|
diffiva_acq = _pim->get_real("R31");
|
||||||
diffincimp_acq = _pim->get_real("R32");
|
diffincimp_acq = _pim->get_real("R32");
|
||||||
diffinciva_acq = _pim->get_real("R33");
|
diffinciva_acq = _pim->get_real("R33");
|
||||||
// }
|
|
||||||
|
|
||||||
const bool is_rit= tipodet != 0 && month == 13 && rit_imp != 0.0; //Se fattura in ritardo con tipo detr. != 0 e si sta calcolando l'annuale
|
const bool is_rit= tipodet != 0 && month == 13 && rit_imp != 0.0; //Se fattura in ritardo con tipo detr. != 0 e si sta calcolando l'annuale
|
||||||
const tipo_sospensione sosp_imp = _reg->get_bool("B1") ? (tipo_sospensione) _reg->get_int("I9") : nessuna;
|
const tipo_sospensione sosp_imp = _reg->get_bool("B1") ? (tipo_sospensione) _reg->get_int("I9") : nessuna;
|
||||||
@ -594,11 +593,13 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
|
|||||||
}
|
}
|
||||||
// se e' corrispettivo da ventilare non
|
// se e' corrispettivo da ventilare non
|
||||||
// scrivo un cannolo ripieno visto che e' stato ventilato
|
// scrivo un cannolo ripieno visto che e' stato ventilato
|
||||||
if (tipomov == vendita && tipoiva == "VE" && !describe_pis) continue;
|
if (tipomov == vendita && tipoiva == "VE" && !describe_pis)
|
||||||
|
continue;
|
||||||
|
|
||||||
// se e' il dettaglio di una attivita' mista non stampa
|
// se e' il dettaglio di una attivita' mista non stampa
|
||||||
// gli acquisti, il perche' losalamadonna
|
// gli acquisti, il perche' losalamadonna
|
||||||
if (tipomov == acquisto && skip_acq) continue;
|
if (tipomov == acquisto && skip_acq)
|
||||||
|
continue;
|
||||||
|
|
||||||
// questi non vanno in liquidazione, i totali sono
|
// questi non vanno in liquidazione, i totali sono
|
||||||
// gia' calcolati altrove
|
// gia' calcolati altrove
|
||||||
@ -1005,12 +1006,12 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
|
|||||||
int m = annual ? month : 1;
|
int m = annual ? month : 1;
|
||||||
for (; m <= limit; m++)
|
for (; m <= limit; m++)
|
||||||
{
|
{
|
||||||
if (!is_month_ok(m,month)) continue;
|
if (!is_month_ok(m,month))
|
||||||
|
continue;
|
||||||
|
|
||||||
atts.restart();
|
FOR_EACH_TOKEN (atts, tmpatt)
|
||||||
while ((tmpatt = atts.get()) != NULL)
|
|
||||||
{
|
{
|
||||||
TString att(tmpatt);
|
const TString8 att(tmpatt);
|
||||||
look_plm(m, att);
|
look_plm(m, att);
|
||||||
real ad1, ad2;
|
real ad1, ad2;
|
||||||
|
|
||||||
@ -1479,12 +1480,12 @@ void TLiquidazione_app::set_att(_DescrItem& d)
|
|||||||
|
|
||||||
if (d._s3.empty())
|
if (d._s3.empty())
|
||||||
{
|
{
|
||||||
att_title = flags == 'M' ? TR("Riepilogo attivita' mista") :
|
att_title = flags == 'M' ? TR("Riepilogo attività mista") :
|
||||||
TR("Riepilogo quater");
|
TR("Riepilogo quater");
|
||||||
// att_title << d._s2;
|
// att_title << d._s2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
att_title = format(FR("Attivita' %s %s %s"),
|
att_title = format(FR("Attività %s %s %s"),
|
||||||
(const char*)(d._s2),
|
(const char*)(d._s2),
|
||||||
(const char*)(d._s3),
|
(const char*)(d._s3),
|
||||||
(const char*)tipatt);
|
(const char*)tipatt);
|
||||||
@ -1696,6 +1697,46 @@ void TLiquidazione_app::set_liqacc_2000(_DescrItem& d)
|
|||||||
set_auto_ff();
|
set_auto_ff();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TLiquidazione_app::print_diff_log(int& rw)
|
||||||
|
{
|
||||||
|
if (_isregis || _isfinal)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
TFilename tmp; tmp.tempdir();
|
||||||
|
tmp.add("liqdiff.txt");
|
||||||
|
ifstream f(tmp);
|
||||||
|
TToken_string str(256, '\t');
|
||||||
|
|
||||||
|
bool header = false;
|
||||||
|
|
||||||
|
while (f.good())
|
||||||
|
{
|
||||||
|
f.getline(str.get_buffer(), str.size()); str.trim();
|
||||||
|
if (str.full())
|
||||||
|
{
|
||||||
|
if (!header)
|
||||||
|
{
|
||||||
|
header = true;
|
||||||
|
set_row(rw++, "IVA@17gImporto@30gImponibile@49gImposta@64gPagamento@96gFattura");
|
||||||
|
}
|
||||||
|
|
||||||
|
const TString4 codiva = str.get(0);
|
||||||
|
const real importo = str.get();
|
||||||
|
const real imponibile = str.get();
|
||||||
|
const real imposta = str.get();
|
||||||
|
const TString16 numpag = str.get();
|
||||||
|
const TString16 datapag = str.get();
|
||||||
|
const TString16 numfat = str.get();
|
||||||
|
const TString16 datafat = str.get();
|
||||||
|
set_row(rw++, "%s@9g%r@25g%r@41g%r@64g%s@80g%s@96g%s@112g%s",
|
||||||
|
(const char*)codiva, &importo, &imponibile, &imposta,
|
||||||
|
(const char*)numpag, (const char*)datapag, (const char*)numfat, (const char*)datafat);
|
||||||
|
str.cut(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return header;
|
||||||
|
}
|
||||||
|
|
||||||
void TLiquidazione_app::set_pim_head(_DescrItem& d)
|
void TLiquidazione_app::set_pim_head(_DescrItem& d)
|
||||||
{
|
{
|
||||||
@ -1716,6 +1757,7 @@ void TLiquidazione_app::set_pim_head(_DescrItem& d)
|
|||||||
{
|
{
|
||||||
set_row(r++, TR("Fatture a liquidazione differita incassate"));
|
set_row(r++, TR("Fatture a liquidazione differita incassate"));
|
||||||
set_bookmark(TR("Riepilogo progressivi a liquidazione differita incassati"), _att_bookmark);
|
set_bookmark(TR("Riepilogo progressivi a liquidazione differita incassati"), _att_bookmark);
|
||||||
|
print_diff_log(r);
|
||||||
}
|
}
|
||||||
else // PIS_HEAD
|
else // PIS_HEAD
|
||||||
{
|
{
|
||||||
@ -1736,6 +1778,7 @@ void TLiquidazione_app::set_pim_head(_DescrItem& d)
|
|||||||
{
|
{
|
||||||
set_row(r++, TR("Fatture a liquidazione differita incassate"));
|
set_row(r++, TR("Fatture a liquidazione differita incassate"));
|
||||||
set_bookmark(TR("Riepilogo progressivi successivi a liquidazione differita incassati"), _att_bookmark);
|
set_bookmark(TR("Riepilogo progressivi successivi a liquidazione differita incassati"), _att_bookmark);
|
||||||
|
print_diff_log(r);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
set_row(r++,"");
|
set_row(r++,"");
|
||||||
|
@ -1,27 +1,8 @@
|
|||||||
#include <applicat.h>
|
|
||||||
|
|
||||||
#include "../ba/ba8500.h"
|
#include "../ba/ba8500.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
// TBruceWayne_app
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
class TBruceWayne_app : public TKlarkKent_app
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
virtual TReport* create_report(const char* name) const;
|
|
||||||
};
|
|
||||||
|
|
||||||
TReport* TBruceWayne_app::create_report(const char* name) const
|
|
||||||
{
|
|
||||||
TReport* rep = new TReport;
|
|
||||||
rep->load(name);
|
|
||||||
return rep;
|
|
||||||
}
|
|
||||||
|
|
||||||
int cg7100(int argc, char* argv[])
|
int cg7100(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TBruceWayne_app app;
|
TKlarkKent_app app;
|
||||||
app.run(argc, argv, TR("Stampa Report Contabilita'"));
|
app.run(argc, argv, TR("Stampa Report Contabilità"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ BEGIN
|
|||||||
FIELD #DATASTAMPA
|
FIELD #DATASTAMPA
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_TIPOELENCO 9
|
LIST F_P_TIPOELENCO 9
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 3 "Tipo elenco "
|
PROMPT 1 3 "Tipo elenco "
|
||||||
HELP "Indicare cosa includere nella stampa"
|
HELP "Indicare cosa includere nella stampa"
|
||||||
|
@ -83,7 +83,7 @@ const TDate& TEsercizio::chiusura() const
|
|||||||
((TDate&)_chiusura) = datacomp; // Forzatura
|
((TDate&)_chiusura) = datacomp; // Forzatura
|
||||||
TTable esc("ESC");
|
TTable esc("ESC");
|
||||||
esc.put("CODTAB", codice());
|
esc.put("CODTAB", codice());
|
||||||
if (esc.read(_lock) == NOERR)
|
if (esc.read(_isequal, _lock) == NOERR)
|
||||||
{
|
{
|
||||||
esc.put("D3", datacomp);
|
esc.put("D3", datacomp);
|
||||||
esc.rewrite();
|
esc.rewrite();
|
||||||
|
124
cg/cgsaldac.cpp
124
cg/cgsaldac.cpp
@ -297,32 +297,22 @@ bool TRiga_scadenze::chiusa(bool update) const
|
|||||||
return chiusa;
|
return chiusa;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calcola il totale dei pagamenti alla data (eventualmente in valuta)
|
static TImporto extract_importo(const TRectype& pag, const TRiga_partite& sum, bool val, int mode)
|
||||||
TImporto TRiga_scadenze::importo_pagato_al(bool val, const TDate & al, int mode) const
|
|
||||||
{
|
{
|
||||||
CHECKD(mode > 0x0 && mode <= 0xFF, "Bad importo_pagato mode ", mode);
|
|
||||||
const TPartita& game = partita();
|
|
||||||
const bool in_val = in_valuta();
|
|
||||||
const char* imp_field = (val && in_val) ? PAGSCA_IMPORTOVAL : PAGSCA_IMPORTO;
|
|
||||||
|
|
||||||
TImporto totale;
|
TImporto totale;
|
||||||
for (int p = last(); p > 0; p = pred(p))
|
|
||||||
{
|
|
||||||
const TRectype& pag = row(p); // Riga pagamento
|
|
||||||
const TRiga_partite& sum = game.riga(p); // Riga partite
|
|
||||||
const TDate & datapag = sum.get_date(PART_DATAPAG);
|
|
||||||
|
|
||||||
if (datapag <= al)
|
|
||||||
{
|
|
||||||
// Inizio aggiunte di Bonazzi del 16/02/2012
|
// Inizio aggiunte di Bonazzi del 16/02/2012
|
||||||
if (mode & 0x10) // solo le note di credito
|
if (mode & 0x10) // solo le note di credito
|
||||||
{
|
{
|
||||||
const tipo_movimento tm = (tipo_movimento)sum.get_int(PART_TIPOMOV);
|
const tipo_movimento tm = sum.tipo();
|
||||||
if (tm != tm_nota_credito)
|
if (tm != tm_nota_credito)
|
||||||
continue;
|
return totale; // = ZERO
|
||||||
}
|
}
|
||||||
// Fine aggiunte di Bonazzi del 16/02/2012
|
// Fine aggiunte di Bonazzi del 16/02/2012
|
||||||
|
|
||||||
|
const bool in_val = sum.in_valuta();
|
||||||
|
const char* imp_field = (val && in_val) ? PAGSCA_IMPORTOVAL : PAGSCA_IMPORTO;
|
||||||
|
|
||||||
const char sez = sum.sezione();
|
const char sez = sum.sezione();
|
||||||
if (mode & 0x1)
|
if (mode & 0x1)
|
||||||
{
|
{
|
||||||
@ -356,12 +346,35 @@ TImporto TRiga_scadenze::importo_pagato_al(bool val, const TDate & al, int mode)
|
|||||||
const TImporto diffcam(sez, pag.get_real(PAGSCA_DIFFCAM));
|
const TImporto diffcam(sez, pag.get_real(PAGSCA_DIFFCAM));
|
||||||
totale += diffcam;
|
totale += diffcam;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return totale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Funzione chiamata esclusivamente da altra funzione commentata
|
||||||
|
|
||||||
|
// Calcola il totale dei pagamenti alla data (eventualmente in valuta)
|
||||||
|
TImporto TRiga_scadenze::importo_pagato_al(bool val, const TDate& al, int mode) const
|
||||||
|
{
|
||||||
|
CHECKD(mode > 0x0 && mode <= 0xFF, "Bad importo_pagato mode ", mode);
|
||||||
|
const TPartita& game = partita();
|
||||||
|
const bool in_val = in_valuta();
|
||||||
|
const char* imp_field = (val && in_val) ? PAGSCA_IMPORTOVAL : PAGSCA_IMPORTO;
|
||||||
|
|
||||||
|
TImporto totale;
|
||||||
|
for (int p = last(); p > 0; p = pred(p))
|
||||||
|
{
|
||||||
|
const TRectype& pag = row(p); // Riga pagamento
|
||||||
|
const TRiga_partite& sum = game.riga(p); // Riga partite
|
||||||
|
const TDate datapag = sum.get_date(PART_DATAPAG);
|
||||||
|
if (datapag <= al)
|
||||||
|
totale += extract_importo(pag, sum, val, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
return totale.normalize();
|
return totale.normalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
// Calcola il totale dei pagamenti (eventualmente in valuta)
|
// Calcola il totale dei pagamenti (eventualmente in valuta)
|
||||||
TImporto TRiga_scadenze::importo_pagato(bool val, int mode) const
|
TImporto TRiga_scadenze::importo_pagato(bool val, int mode) const
|
||||||
{
|
{
|
||||||
@ -1052,6 +1065,7 @@ TImporto TRiga_partite::esposto(bool valuta, const TDate & data_scad, const TDat
|
|||||||
return esposto;
|
return esposto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
TImporto TRiga_partite::calcola_pagato_al(bool valuta,const TDate& al, const TDate & data_scaduto, const TDate& data_rischio, int mode) const
|
TImporto TRiga_partite::calcola_pagato_al(bool valuta,const TDate& al, const TDate & data_scaduto, const TDate& data_rischio, int mode) const
|
||||||
{
|
{
|
||||||
TImporto pagato;
|
TImporto pagato;
|
||||||
@ -1067,15 +1081,85 @@ TImporto TRiga_partite::calcola_pagato_al(bool valuta,const TDate& al, const TDa
|
|||||||
const TRiga_scadenze& scad = rata(r);
|
const TRiga_scadenze& scad = rata(r);
|
||||||
const TImporto pag = scad.importo_pagato_al(valuta, al, mode);
|
const TImporto pag = scad.importo_pagato_al(valuta, al, mode);
|
||||||
pagato += pag;
|
pagato += pag;
|
||||||
if (!pag.is_zero() && rischio)
|
if (rischio && !pag.is_zero())
|
||||||
{
|
{
|
||||||
bool sbf = false;
|
bool sbf = false;
|
||||||
pagato -= scad.esposto_al(valuta, al, data_scaduto, data_rischio, sbf);
|
pagato -= scad.esposto_al(valuta, al, data_scaduto, data_rischio, sbf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return pagato;
|
return pagato;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
int TRiga_partite::calcola_pagato_periodo(const TDate& dal, const TDate& al, TImporto& pg, TImporto& nc, TPointer_array* pagsca) const
|
||||||
|
{
|
||||||
|
int flag = 0;
|
||||||
|
if (!is_fattura())
|
||||||
|
return flag;
|
||||||
|
|
||||||
|
TPointer_array pags;
|
||||||
|
|
||||||
|
const int lastr = rate();
|
||||||
|
for (int r = lastr; r > 0; r--)
|
||||||
|
{
|
||||||
|
const TRiga_scadenze& scad = rata(r);
|
||||||
|
for (int p = scad.last(); p > 0; p = scad.pred(p))
|
||||||
|
{
|
||||||
|
const TRectype& pag = scad.row(p); // Riga pagamento
|
||||||
|
const TRiga_partite& sum = partita().riga(p); // Riga partite
|
||||||
|
const TDate datapag = sum.get_date(PART_DATAPAG);
|
||||||
|
if ((!dal.ok() || datapag >= dal) && (!al.ok() || datapag <= al))
|
||||||
|
pags.add((TRectype*)&pag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cerco di gestire anche i non assegnati sulla unica fattura di una partita
|
||||||
|
const TRecord_array& unas = partita().unassigned();
|
||||||
|
if (unas.rows() > 0)
|
||||||
|
{
|
||||||
|
int fatture = 0;
|
||||||
|
for (int r = partita().last(); r > 0 && fatture < 2; r = partita().pred(r))
|
||||||
|
{
|
||||||
|
if (partita().riga(r).tipo() == tm_fattura)
|
||||||
|
fatture++;
|
||||||
|
}
|
||||||
|
if (fatture == 1)
|
||||||
|
{
|
||||||
|
for(int r = unas.last_row(); r > 0; r = unas.pred_row(r))
|
||||||
|
{
|
||||||
|
const TRectype& pag = unas.row(r);
|
||||||
|
const TRiga_partite& sum = partita().riga(r);
|
||||||
|
const TDate datapag = sum.get_date(PART_DATAPAG);
|
||||||
|
if ((!dal.ok() || datapag >= dal) && (!al.ok() || datapag <= al))
|
||||||
|
pags.add((TRectype*)&pag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FOR_EACH_ARRAY_ITEM(pags, p, obj)
|
||||||
|
{
|
||||||
|
const TRectype& pag = *(TRectype*)obj;
|
||||||
|
const TRiga_partite& sum = partita().riga(pag.get_int(PAGSCA_NRIGP));
|
||||||
|
const tipo_movimento tm = sum.tipo();
|
||||||
|
const TImporto imp = extract_importo(pag, sum, false, 0xF);
|
||||||
|
if (tm == tm_nota_credito)
|
||||||
|
{
|
||||||
|
nc += imp;
|
||||||
|
flag |= 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pg += imp;
|
||||||
|
flag |= 1;
|
||||||
|
if (pagsca != NULL && tm == tm_pagamento || tm == tm_pagamento_insoluto)
|
||||||
|
pagsca->add(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TRiga_partite_array
|
// TRiga_partite_array
|
||||||
@ -1750,6 +1834,9 @@ TImporto TPartita::calcola_saldo(bool valuta) const
|
|||||||
return saldo;
|
return saldo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Funzione completamente inutile e certamente NON utilizzata nei moduli cg, sc e ve
|
||||||
|
|
||||||
TImporto TPartita::calcola_pagato_al(bool valuta,const TDate& al, const TDate & data_scaduto, const TDate& data_rischio) const
|
TImporto TPartita::calcola_pagato_al(bool valuta,const TDate& al, const TDate & data_scaduto, const TDate& data_rischio) const
|
||||||
{
|
{
|
||||||
TImporto pagato;
|
TImporto pagato;
|
||||||
@ -1758,14 +1845,12 @@ TImporto TPartita::calcola_pagato_al(bool valuta,const TDate& al, const TDate &
|
|||||||
{
|
{
|
||||||
const TRiga_partite& row = riga(r);
|
const TRiga_partite& row = riga(r);
|
||||||
const TDate data(row.get(PART_DATAREG));
|
const TDate data(row.get(PART_DATAREG));
|
||||||
|
|
||||||
if (data <= al)
|
if (data <= al)
|
||||||
{
|
{
|
||||||
pagato += row.importo(valuta);
|
pagato += row.importo(valuta);
|
||||||
if (!row.is_fattura())
|
if (!row.is_fattura())
|
||||||
{
|
{
|
||||||
const tipo_pagamento tipopag = row.tipo_pag();
|
const tipo_pagamento tipopag = row.tipo_pag();
|
||||||
|
|
||||||
if (tipopag >= tp_tratta && tipopag <= tp_rid)
|
if (tipopag >= tp_tratta && tipopag <= tp_rid)
|
||||||
{
|
{
|
||||||
bool sbf = false;
|
bool sbf = false;
|
||||||
@ -1776,6 +1861,7 @@ TImporto TPartita::calcola_pagato_al(bool valuta,const TDate& al, const TDate &
|
|||||||
}
|
}
|
||||||
return pagato;
|
return pagato;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
TImporto TPartita::calcola_saldo_al(bool valuta,const TDate& al, const TDate & data_scaduto, const TDate& data_rischio) const
|
TImporto TPartita::calcola_saldo_al(bool valuta,const TDate& al, const TDate & data_scaduto, const TDate& data_rischio) const
|
||||||
{
|
{
|
||||||
|
@ -135,6 +135,7 @@ protected:
|
|||||||
|
|
||||||
protected: // TRecord_tree
|
protected: // TRecord_tree
|
||||||
virtual TObject* dup() const;
|
virtual TObject* dup() const;
|
||||||
|
// TImporto importo_pagato_al(bool val, const TDate & al, int mode = 0xF) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool chiusa(bool update = false) const;
|
bool chiusa(bool update = false) const;
|
||||||
@ -145,7 +146,6 @@ public:
|
|||||||
TPartita& partita() const;
|
TPartita& partita() const;
|
||||||
TRiga_partite& riga() const { return *_riga; } // Riga partite
|
TRiga_partite& riga() const { return *_riga; } // Riga partite
|
||||||
|
|
||||||
TImporto importo_pagato_al(bool val, const TDate & al, int mode = 0xF) const;
|
|
||||||
TImporto importo_pagato(bool val, int mode = 0xF) const;
|
TImporto importo_pagato(bool val, int mode = 0xF) const;
|
||||||
TImporto importo(bool val) const;
|
TImporto importo(bool val) const;
|
||||||
TImporto residuo(bool val, int mode = 0xF) const; // Differenza delle due funzioni precedenti
|
TImporto residuo(bool val, int mode = 0xF) const; // Differenza delle due funzioni precedenti
|
||||||
@ -194,7 +194,8 @@ public:
|
|||||||
|
|
||||||
TImporto importo(bool valuta, int mode = 0xF) const;
|
TImporto importo(bool valuta, int mode = 0xF) const;
|
||||||
TImporto esposto(bool valuta, const TDate & data_scad, const TDate & data_rischio, bool & sbf) const;
|
TImporto esposto(bool valuta, const TDate & data_scad, const TDate & data_rischio, bool & sbf) const;
|
||||||
TImporto calcola_pagato_al(bool valuta,const TDate& al, const TDate & data_scaduto, const TDate& data_rischio, int mode = 0xF) const;
|
//TImporto calcola_pagato_al(bool valuta, const TDate& al, const TDate & data_scaduto, const TDate& data_rischio, int mode = 0xF) const;
|
||||||
|
int calcola_pagato_periodo(const TDate& dal, const TDate& al, TImporto& pag, TImporto& nc, TPointer_array* pagsca = NULL) const;
|
||||||
|
|
||||||
const TString& codice_valuta() const;
|
const TString& codice_valuta() const;
|
||||||
bool in_valuta() const;
|
bool in_valuta() const;
|
||||||
@ -300,7 +301,7 @@ public:
|
|||||||
void update_reg(long nreg, const TRectype& mov, TPartite_array& pa);
|
void update_reg(long nreg, const TRectype& mov, TPartite_array& pa);
|
||||||
void calcola_saldo(TImporto& saldo, TImporto& doc, TImporto& pag, TImporto& imp) const;
|
void calcola_saldo(TImporto& saldo, TImporto& doc, TImporto& pag, TImporto& imp) const;
|
||||||
TImporto calcola_saldo(bool valuta) const;
|
TImporto calcola_saldo(bool valuta) const;
|
||||||
TImporto calcola_pagato_al(bool valuta,const TDate& al, const TDate & data_scaduto, const TDate& data_rischio) const;
|
//TImporto calcola_pagato_al(bool valuta,const TDate& al, const TDate & data_scaduto, const TDate& data_rischio) const;
|
||||||
TImporto calcola_saldo_al(bool valuta, const TDate& al, const TDate& data_scaduto, const TDate& data_rischio) const;
|
TImporto calcola_saldo_al(bool valuta, const TDate& al, const TDate& data_scaduto, const TDate& data_rischio) const;
|
||||||
real calcola_scaduto_al(bool valuta, const TDate& al = botime) const;
|
real calcola_scaduto_al(bool valuta, const TDate& al = botime) const;
|
||||||
TImporto importo_pagato_unassigned(bool val, int mode = 0xF) const;
|
TImporto importo_pagato_unassigned(bool val, int mode = 0xF) const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user