Patch level : 2.0 462
Files correlati : ab0.exe Ricompilazione Demo : [ ] Commento : Corretto errore CM701106 Descrizione Continua sviluppo riclassific. saldi git-svn-id: svn://10.65.10.50/trunk@11061 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
132b0a2e1b
commit
72d6f29c18
107
ab/ab0400.cpp
107
ab/ab0400.cpp
@ -241,6 +241,7 @@ public:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
void mask2parms(const TMask & m);
|
||||
void ini2parms(const char * filename);
|
||||
void calculate_clifo(const TString & tipo, const int gruppo, const int conto, const int indbil, const bool saldi_attuali, const TString & codcom);
|
||||
void calculate();
|
||||
void transform();
|
||||
@ -357,6 +358,69 @@ void TRicl_saldi::mask2parms(const TMask & m)
|
||||
#endif
|
||||
}
|
||||
|
||||
void TRicl_saldi::ini2parms(const char * filename)
|
||||
{
|
||||
TConfig c(filename);
|
||||
TEsercizi_contabili es;
|
||||
|
||||
_calc_type = (TCalc_type) c.get_int("Tipo");
|
||||
_codes = c.get_int("Esercizio");
|
||||
_dal = c.get("Dal");
|
||||
_al = c.get("Al");
|
||||
if (_codes != 0 && !_dal.ok())
|
||||
_dal = es.esercizio(_codes).inizio();
|
||||
if (_codes != 0 && !_al.ok())
|
||||
_al = es.esercizio(_codes).fine();
|
||||
|
||||
if (_codes == 0)
|
||||
{
|
||||
_codes = es.date2esc(_dal);
|
||||
if (_codes == 0)
|
||||
_codes = es.date2esc(_al);
|
||||
}
|
||||
_all_recs = c.get_bool("Struttura");
|
||||
_provv = c.get_bool("Provvisori");
|
||||
_codcms = c.get("Commessa");
|
||||
_output_file = c.get("Output");
|
||||
_codpdb = c.get("Periodo");
|
||||
#ifdef DBG
|
||||
TString line ;
|
||||
write_log("---------------------------------------------------");
|
||||
line = TR("Tipo di calcolo : ");
|
||||
switch (_calc_type)
|
||||
{
|
||||
case _saldi :
|
||||
line << TR("Saldi Contabili");
|
||||
break;
|
||||
case _ivdircee :
|
||||
line << TR("IV Direttiva CEE");
|
||||
break;
|
||||
case _analisi :
|
||||
line << TR("Analisi");
|
||||
break;
|
||||
default :
|
||||
break;
|
||||
}
|
||||
write_log(line);
|
||||
line = TR("Esercizio : "); line << _codes;
|
||||
write_log(line);
|
||||
line = TR("Codice periodo : "); line << _codpdb;
|
||||
write_log(line);
|
||||
line = TR("Dal : "); line << _dal.string();
|
||||
write_log(line);
|
||||
line = TR("Al : "); line << _al.string();
|
||||
write_log(line);
|
||||
line = TR("Movimenti provv.: "); line << (_provv ? "Si" : "No");
|
||||
write_log(line);
|
||||
line = TR("Intera struttura: "); line << (_all_recs ? "Si" : "No");
|
||||
write_log(line);
|
||||
line = TR("Commessa : "); line << _codcms;
|
||||
write_log(line);
|
||||
line = TR("Output : "); line << ((const char *) _output_file);
|
||||
write_log(line);
|
||||
write_log("");
|
||||
#endif
|
||||
}
|
||||
void TRicl_saldi::calculate_clifo(const TString & tipo, const int gruppo, const int conto, const int indbil, const bool saldi_attuali, const TString & codcom)
|
||||
{
|
||||
TRelation relcf(LF_CLIFO);
|
||||
@ -563,7 +627,7 @@ TFile_type TRicl_saldi::open_output()
|
||||
void TRicl_saldi::output_line(TFile_type t, const char * key, TRiga_output & r, const bool is_commessa, TString & codcms)
|
||||
{
|
||||
TString descr;
|
||||
const bool analisi = _calc_type == _ivdircee;
|
||||
const bool analisi = _calc_type == _analisi;
|
||||
const bool saldi = _calc_type == _saldi;
|
||||
|
||||
if (analisi)
|
||||
@ -687,10 +751,10 @@ void TRicl_saldi::output()
|
||||
saldo.put(ABS_CODPDB, _codpdb);
|
||||
|
||||
TCursor cur(&relana, "", 1, &saldo, &saldo);
|
||||
const TRecnotype items = cur.items();
|
||||
const TRecnotype curs_items = cur.items();
|
||||
|
||||
cur.freeze();
|
||||
for (cur = 0L; cur.pos() < items; ++cur)
|
||||
for (cur = 0L; cur.pos() < curs_items; ++cur)
|
||||
relana.remove();
|
||||
TProgind p(items, "Aggiornamenti Saldi analisi", FALSE);
|
||||
int err = NOERR;
|
||||
@ -703,6 +767,7 @@ void TRicl_saldi::output()
|
||||
saldo.put(ABS_CODDITTA, get_firm());
|
||||
saldo.put(ABS_ANNO, _codes);
|
||||
saldo.put(ABS_CODPDB, _codpdb);
|
||||
saldo.put(ABS_CODCBL, key);
|
||||
|
||||
const real si = r.saldo_iniziale();
|
||||
const char fsi = si >= ZERO ? 'D' : 'A';
|
||||
@ -714,10 +779,10 @@ void TRicl_saldi::output()
|
||||
err = relana.write();
|
||||
if (err == _isreinsert)
|
||||
err = relana.write();
|
||||
p.addstatus(1L);
|
||||
}
|
||||
if (err != NOERR)
|
||||
error_box("Impossibile aggiornare l'archivio saldi analisi errore n. %d", err);
|
||||
p.addstatus(1L);
|
||||
}
|
||||
TProgind p1(items, "Generazione output", FALSE);
|
||||
for (int i = 0; i < items && !p1.iscancelled() ; i++)
|
||||
@ -732,19 +797,35 @@ void TRicl_saldi::output()
|
||||
|
||||
void TRicl_saldi::main_loop()
|
||||
{
|
||||
while (_mask->run() != K_QUIT)
|
||||
{
|
||||
if (argc() == 2)
|
||||
{
|
||||
while (_mask->run() != K_QUIT)
|
||||
{
|
||||
#ifdef DBG
|
||||
open_log();
|
||||
open_log();
|
||||
#endif
|
||||
mask2parms(*_mask);
|
||||
calculate();
|
||||
transform();
|
||||
output();
|
||||
mask2parms(*_mask);
|
||||
calculate();
|
||||
transform();
|
||||
output();
|
||||
#ifdef DBG
|
||||
close_log();
|
||||
close_log();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef DBG
|
||||
open_log();
|
||||
#endif
|
||||
ini2parms(argv(2));
|
||||
calculate();
|
||||
transform();
|
||||
output();
|
||||
#ifdef DBG
|
||||
close_log();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
int ab0400 (int argc, char* argv[])
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
PAGE "Stampa tabella tipi di bilancio" -1 -1 50 8
|
||||
|
||||
STRING F_INIZIO1 3
|
||||
STRING F_INIZIO1 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "Da codice "
|
||||
HELP "Codice da cui iniziare a stampare. Vuoto = inizio archivio"
|
||||
@ -13,10 +13,10 @@ BEGIN
|
||||
OUTPUT F_INIZIO1 CODTAB
|
||||
GROUP 1
|
||||
FIELD CODTAB
|
||||
FLAGS "RU"
|
||||
FLAGS "UZ"
|
||||
END
|
||||
|
||||
STRING F_FINE1 3
|
||||
STRING F_FINE1 2
|
||||
BEGIN
|
||||
PROMPT 4 3 "A codice "
|
||||
HELP "Codice a cui terminare la stampa. Vuoto = fine archivio"
|
||||
@ -26,7 +26,7 @@ BEGIN
|
||||
OUTPUT F_FINE1 CODTAB
|
||||
GROUP 2
|
||||
FIELD CODTAB
|
||||
FLAGS "RU"
|
||||
FLAGS "UZ"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
|
@ -14,11 +14,11 @@ BEGIN
|
||||
FLAGS "R"
|
||||
END
|
||||
|
||||
STRING F_CODTAB 3
|
||||
STRING F_CODTAB 2
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice periodo "
|
||||
HELP "Inserire il codice identificativo del periodo prescelto"
|
||||
FLAS "RU"
|
||||
FLAS "UZ"
|
||||
FIELD CODTAB
|
||||
KEY 1
|
||||
USE %PDB KEY 1
|
||||
|
@ -1,3 +1,3 @@
|
||||
79
|
||||
1
|
||||
%absaldi|0|0|124|20|Saldi analisi di bilancio|||
|
||||
%absaldi|0|0|123|0|Saldi analisi di bilancio|||
|
||||
|
@ -2,7 +2,7 @@
|
||||
12
|
||||
CODDITTA|3|5|0|Codice ditta
|
||||
ANNO|2|4|0|Anno
|
||||
CODPDB|1|3|0|Codice periodo
|
||||
CODPDB|1|2|0|Codice periodo
|
||||
TIPOBIL|1|2|0|Codice tipo di bilancio
|
||||
CODCBL|1|12|0|Codice piano conti
|
||||
FLDA|1|1|0|Flag <D>are o <A>vere
|
||||
|
@ -1,3 +1,3 @@
|
||||
80
|
||||
1
|
||||
%movdett|0|0|422|20|Movimenti / dettagli analisi di bilancio|||
|
||||
%movdett|0|0|421|0|Movimenti / dettagli analisi di bilancio|||
|
||||
|
@ -2,7 +2,7 @@
|
||||
33
|
||||
CODDITTA|3|5|0|Codice ditta
|
||||
ANNO|2|4|0|Anno
|
||||
CODPDB|1|3|0|Codice periodo
|
||||
CODPDB|1|2|0|Codice periodo
|
||||
TIPOBIL|1|2|0|Codice tipo di bilancio
|
||||
CODCBL|1|12|0|Codice piano conti
|
||||
ID|3|6|0|Identificatore record all' interno del periodo ( >0)
|
||||
|
@ -1,3 +1,3 @@
|
||||
81
|
||||
1
|
||||
%rett|0|0|207|20|Rettifiche analisi di bilancio|||
|
||||
%rett|0|0|206|0|Rettifiche analisi di bilancio|||
|
||||
|
@ -2,7 +2,7 @@
|
||||
17
|
||||
CODDITTA|3|5|0|Codice Ditta
|
||||
ANNO|1|4|0|Anno
|
||||
CODPDB|1|3|0|Codice periodo di bilancio
|
||||
CODPDB|1|2|0|Codice periodo di bilancio
|
||||
TIPOBIL|1|2|0|Tipo di bilancio
|
||||
NUMREG|3|10|0|Numero di registrazione
|
||||
DATAREG|5|8|0|Data di registrazione
|
||||
|
@ -464,8 +464,8 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
|
||||
return esito;
|
||||
}
|
||||
|
||||
real & TSaldo::valore_al(int g, int c, long s, const TDate& dal, const TDate& al,
|
||||
int indbil, bool provv)
|
||||
real & TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const TDate& al,
|
||||
int indbil, bool provv, const TString & codcomm)
|
||||
|
||||
{
|
||||
_saldo_iniziale = ZERO;
|
||||
@ -479,24 +479,28 @@ real & TSaldo::valore_al(int g, int c, long s, const TDate& dal, const TDate& al
|
||||
|
||||
TEsercizi_contabili es;
|
||||
const int codes = es.date2esc(dal);
|
||||
const bool is_commessa = codcomm.not_empty();
|
||||
|
||||
_annoes = codes;
|
||||
TString16 key;
|
||||
|
||||
key.format("%d||%d|%d|%ld", _annoes, g, c, s);
|
||||
const TRectype & saldo = cache().get(LF_SALDI, key);
|
||||
|
||||
_saldo_iniziale = saldo.get_real(SLD_SALDO);
|
||||
_prec = _saldo_iniziale == ZERO;
|
||||
|
||||
if (_prec)
|
||||
if( !is_commessa)
|
||||
{
|
||||
_prec = TRUE;
|
||||
_saldo_iniziale = saldofin_esprec(codes,g,c,s);
|
||||
TString key(20);
|
||||
|
||||
key.format("%04d| |%d|%d|%ld", _annoes, g, c, s);
|
||||
const TRectype & saldo = cache().get(LF_SALDI, key);
|
||||
|
||||
_saldo_iniziale = saldo.get_real(SLD_SALDO);
|
||||
_prec = _saldo_iniziale == ZERO;
|
||||
|
||||
if (_prec)
|
||||
{
|
||||
_prec = TRUE;
|
||||
_saldo_iniziale = saldofin_esprec(codes,g,c,s);
|
||||
}
|
||||
else
|
||||
if (saldo.get_char(SLD_FLAGSALINI) == 'A')
|
||||
_saldo_iniziale = -_saldo_iniziale;
|
||||
}
|
||||
else
|
||||
if (saldo.get_char(SLD_FLAGSALINI) == 'A')
|
||||
_saldo_iniziale = -_saldo_iniziale;
|
||||
|
||||
|
||||
TRelation relrmov(LF_RMOV);
|
||||
@ -513,7 +517,7 @@ real & TSaldo::valore_al(int g, int c, long s, const TDate& dal, const TDate& al
|
||||
|
||||
TString prompt(30);
|
||||
|
||||
prompt.format(FR("Calcolo saldo conto %d-%d_%ld"), g, c, s);
|
||||
prompt.format(FR("Calcolo saldo conto %d-%d-%ld"), g, c, s);
|
||||
|
||||
TProgind p(items, prompt, FALSE);
|
||||
|
||||
@ -530,6 +534,7 @@ real & TSaldo::valore_al(int g, int c, long s, const TDate& dal, const TDate& al
|
||||
|
||||
if ((_datacomp >= dal && _datacomp <= al) &&
|
||||
(provv || _provv.empty()) &&
|
||||
(!is_commessa || codcomm == rmov.get(RMV_CODCMS)) &&
|
||||
importo != ZERO)
|
||||
{
|
||||
// "Se la causale del movimento e' di chiusura,
|
||||
@ -549,7 +554,7 @@ real & TSaldo::valore_al(int g, int c, long s, const TDate& dal, const TDate& al
|
||||
_prg_avere += importo;
|
||||
}
|
||||
else
|
||||
if (_datacomp < dal)
|
||||
if ((!is_commessa) && _datacomp < dal)
|
||||
{
|
||||
if (codes == es.date2esc(_datacomp))
|
||||
{
|
||||
|
@ -111,7 +111,7 @@ public:
|
||||
bool ultima_immissione_bilancio(int anno,int g,int c,long s,int indbil,int prov,bool saldo_chiusura = TRUE);
|
||||
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, const char* = NULL);
|
||||
real & valore_al(int g,int c,long s,const TDate& dal,const TDate& al,int indbil, bool provv);
|
||||
real & saldo_periodo(int g,int c,long s,const TDate& dal,const TDate& al,int indbil, bool provv, const TString & codcomm = EMPTY_STRING);
|
||||
|
||||
bool ricerca_progr_prec(int, int, int, long);
|
||||
|
||||
|
@ -122,6 +122,10 @@ SOURCE=..\cg\cglib01.cpp
|
||||
|
||||
SOURCE=..\cg\cglib02.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\include\fraction.cpp
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Headers"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user