diff --git a/cg/cg1500.cpp b/cg/cg1500.cpp index 65dd3586b..e71a50cf8 100755 --- a/cg/cg1500.cpp +++ b/cg/cg1500.cpp @@ -1442,9 +1442,18 @@ bool CG1500_application::calcola(int g, int c, long s) TString codcaus(mov.get(MOV_CODCAUS)); + // if (codcaus.not_empty()) + // if (codcaus == causale_chiusura()) + // continue; + + // Modifica del 03-03-95 + + TCaus cau (codcaus); + if (codcaus.not_empty()) - if (codcaus == causale_chiusura()) + if (cau.chiusura()) // Si tratta di causale di chiusura continue; + //la causale e' uguale a quella di chiusura // break; @@ -1459,21 +1468,36 @@ bool CG1500_application::calcola(int g, int c, long s) continue; //calcolo i movimenti del periodo + /* + if ( data_reg >= _datada && data_reg <= _dataa) + if ((codcaus == causale_apertura() && _dataini != _datada) || + (codcaus != causale_apertura())) + { + conto_mov = TRUE; + if (sezione == 'D') + _mov_periodo_dare += importo; + else _mov_periodo_avere += importo; + _u_max = fnc_max(_u_max, data); + } + */ + // Modifica del 03-03-95 + if ( data_reg >= _datada && data_reg <= _dataa) - if ((codcaus == causale_apertura() && _dataini != _datada) || - (codcaus != causale_apertura())) + if ((cau.apertura() && _dataini != _datada) || + (!cau.apertura())) { conto_mov = TRUE; if (sezione == 'D') _mov_periodo_dare += importo; else _mov_periodo_avere += importo; _u_max = fnc_max(_u_max, data); - } + } //il saldo inizio es. e' dato dall'importo dare - importo avere di quei movimenti che hanno causale == apertura e data reg >= data inizio es. e <= data limite sup. if (_datada == _dataini) //calcolo il saldo iniziale { - if (codcaus == causale_apertura()) + //if (codcaus == causale_apertura()) + if (cau.apertura()) { if (sezione == 'D') _saldo_ini_dare += importo; diff --git a/cg/cg1600.cpp b/cg/cg1600.cpp index 2b7633973..5abbeb2fd 100755 --- a/cg/cg1600.cpp +++ b/cg/cg1600.cpp @@ -1902,10 +1902,19 @@ bool CG1600_application::calcola(int g, int c, long s, continue; //stampa mov provv. //li scarto const TString codcaus(mov.get(MOV_CODCAUS)); + +// if (codcaus.not_empty()) +// if (codcaus == causale_chiusura()) //la causale e' uguale a quella di chiusura +// continue; + +// Modifica del 03-03-95 + + TCaus cau (codcaus); if (codcaus.not_empty()) - if (codcaus == causale_chiusura()) //la causale e' uguale a quella di chiusura - continue; + if (cau.chiusura()) //la causale e' uguale a quella di chiusura + continue; + if (_annoese == 0) data = datareg; @@ -1917,9 +1926,8 @@ bool CG1600_application::calcola(int g, int c, long s, TString datastr1 = _dataini.string(); TString datastr2 = _data_ini_ese.string(); - TString codcausapp = causale_apertura(); - //calcolo i movimenti del periodo +/* if ( (data >= _dataini) && (data <= _datafine) ) if ((codcaus == causale_apertura() && _data_ini_ese != _dataini) || (codcaus != causale_apertura())) @@ -1929,12 +1937,25 @@ bool CG1600_application::calcola(int g, int c, long s, _mov_periodo_dare += importo; else _mov_periodo_avere += importo; } - +*/ +// Modifica del 03-03-95 + + if ( (data >= _dataini) && (data <= _datafine) ) + if ((cau.apertura() && _data_ini_ese != _dataini) || + (!cau.apertura())) + { + conto_mov = TRUE; + if (sezione == "D") + _mov_periodo_dare += importo; + else _mov_periodo_avere += importo; + } + //il saldo inizio es. e' dato dall'importo dare - importo avere di quei movimenti che hanno causale == apertura e data reg >= data inizio es. e <= data limite sup. if (_dataini == _data_ini_ese) //calcolo il saldo iniziale { - if (codcaus == causale_apertura()) + //if (codcaus == causale_apertura()) + if (cau.apertura()) { if (sezione == "D") _saldo_ini_dare += importo; diff --git a/cg/cg1600a.uml b/cg/cg1600a.uml index b41824f65..6f097ec16 100755 --- a/cg/cg1600a.uml +++ b/cg/cg1600a.uml @@ -21,6 +21,13 @@ BEGIN FLAGS "D" END +DATE F_DATASTAMPA +BEGIN + PROMPT 4 4 "Data stampa " + HELP "Indicare la data da stampare sul bilancio" + FLAGS "A" +END + NUMBER F_ANNOESE 4 BEGIN PROMPT 4 5 "Anno esercizio " @@ -88,13 +95,6 @@ BEGIN MESSAGE COPY,F_TIPOSTAMPA END -DATE F_DATASTAMPA -BEGIN - PROMPT 4 4 "Data stampa " - HELP "Indicare la data da stampare sul bilancio" - FLAGS "A" -END - TEXT 96 BEGIN PROMPT 4 9 "Dalla data competenza " @@ -174,12 +174,12 @@ END BUTTON DLG_OK 9 2 BEGIN - PROMPT -12 -1 "" + PROMPT -12 -1 "" END BUTTON DLG_QUIT 9 2 BEGIN - PROMPT -22 -1 "" + PROMPT -22 -1 "" END ENDPAGE diff --git a/cg/cg2103.cpp b/cg/cg2103.cpp index a2dc6e15a..7b9c9748d 100755 --- a/cg/cg2103.cpp +++ b/cg/cg2103.cpp @@ -231,7 +231,7 @@ bool TLibro_giornale::read(int y) for (int err = reg.read(_isgteq); err == NOERR; err = reg.next()) { - if (reg.get("CODTAB").compare(anno, 4) != 0) break; + //if (reg.get("CODTAB").compare(anno, 4) != 0) break; if (reg.get_int("I0") == libro_giornale) { found = TRUE; diff --git a/cg/cg2103.h b/cg/cg2103.h index b4d2c2521..e13ce3dda 100755 --- a/cg/cg2103.h +++ b/cg/cg2103.h @@ -78,7 +78,8 @@ class TCausale : public TArray bool _corrisp; char _sezione_clifo, _sezione_ritsoc; -protected: +protected: + const TRectype& row(int num) const; void calcIVA(); @@ -111,7 +112,7 @@ public: char sezione_clifo(); char sezione_ritsoc(); - bool read(const char* cod, int year); + virtual bool read(const char* cod, int year); TCausale(const char* code = "", int year = 0); virtual ~TCausale() {} diff --git a/cg/cglib.h b/cg/cglib.h index 07bbb2a66..6896f9ee7 100755 --- a/cg/cglib.h +++ b/cg/cglib.h @@ -13,8 +13,22 @@ #include #include "conto.h" +#include "cg2103.h" // per TCausale -//TLocalisamfile * get_descr_cf(TLocalisamfile * pconti,TLocalisamfile * clifo , int g, int c, long s); + +class TCaus : public TCausale +{ +private: + TRectype _rec; + +public: + bool chiusura() const; + bool apertura() const; + virtual bool read(const char* cod); + + TCaus(const char* cod); + ~TCaus() {} +}; class TSaldi_list : public TAssoc_array { diff --git a/cg/cglib01.cpp b/cg/cglib01.cpp index 9b8809319..8898f9c98 100755 --- a/cg/cglib01.cpp +++ b/cg/cglib01.cpp @@ -11,10 +11,47 @@ #include #include #include +#include #include #include "cglib.h" +/////////////////////////////////////////////////////////// +// Causale +/////////////////////////////////////////////////////////// + +TCaus::TCaus(const char* cod) +: _rec(LF_CAUSALI) +{ + if (*cod) read(cod); +} + + +// Legge le righe della causale attualmente selezionata sulla maschera +bool TCaus::read(const char* cod) +{ + TLocalisamfile caus(LF_CAUSALI); + + _rec = caus.curr(); _rec.zero(); // Delete header + + if (*cod > ' ') + { + caus.setkey(1); + caus.put(CAU_CODCAUS, cod); + + int err = caus.read(); + if (err != NOERR) return FALSE; + _rec = caus.curr(); + } + return TRUE; +} + +bool TCaus::chiusura() const +{ return _rec.get_char("MOVAP") == 'C'; } + +bool TCaus::apertura() const +{ return _rec.get_char("MOVAP") == 'A'; } + // aep e' l'esercizio precedente TSaldi_list::TSaldi_list(int gr, int co, int aec, int aep) { @@ -330,7 +367,7 @@ bool TSaldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDat TRectype rec(rmov.curr()); for (rmov.read(_isgteq); !rmov.eof(); rmov.next()) - { + { if (rmov.curr() != rec) break; annoe = rmov.get_int(RMV_ANNOES); @@ -358,11 +395,18 @@ bool TSaldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDat // "Se la causale del movimento e' uguale a quella di chiusura, // o di apertura il movimento non va considerato" - if (_codcaus.not_empty()) - if (_codcaus == causale_chiusura_es() || - _codcaus == causale_apertura_es()) - continue; - + // if (_codcaus.not_empty()) + // if (_codcaus == causale_chiusura_es() || + // _codcaus == causale_apertura_es()) + // continue; + + // Modifica del 03-03-1995 + TCaus cau(_codcaus); + + if (_codcaus.not_empty()) + if (cau.chiusura() || cau.apertura()) + continue; + //se non e' richiesta stampa mov. provvisori li scarto if (!stp_prov && _provv.trim().not_empty()) continue;