From cfc4dd062f4962fea2f383c9a8078f25e1326402 Mon Sep 17 00:00:00 2001 From: guy Date: Thu, 9 Feb 2006 16:50:35 +0000 Subject: [PATCH] Patch level : 2.1 Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunto metodo rapido ed efficace per trasformare un codice esercizio nelle due date limite del medesimo git-svn-id: svn://10.65.10.50/trunk@13780 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cglib01.cpp | 58 +++++++++++++++++++++++++++++++++++++------------- cg/cglib01.h | 1 + 2 files changed, 44 insertions(+), 15 deletions(-) diff --git a/cg/cglib01.cpp b/cg/cglib01.cpp index 4b41eacc2..99c513b80 100755 --- a/cg/cglib01.cpp +++ b/cg/cglib01.cpp @@ -63,27 +63,32 @@ void TEsercizi_contabili::check() int TEsercizi_contabili::date2index(const TDate& d) const { - check(); - int i; - for (i = items()-1; i >= 0; i--) - { - const TEsercizio& e = esc(i); - if (d >= e.inizio() && d <= e.fine()) - break; + int i = -1; + if (d.ok()) + { + check(); + for (i = items()-1; i >= 0; i--) + { + const TEsercizio& e = esc(i); + if (d >= e.inizio() && d <= e.fine()) + break; + } } return i; } int TEsercizi_contabili::esc2index(int codice) const { - check(); - int i; - - for (i = items()-1; i >= 0; i--) - { - const TEsercizio& e = esc(i); - if (codice == e.codice()) - break; + int i = -1; + if (codice > 0) + { + check(); + for (i = items()-1; i >= 0; i--) + { + const TEsercizio& e = esc(i); + if (codice == e.codice()) + break; + } } return i; } @@ -191,6 +196,29 @@ const TEsercizio& TEsercizi_contabili::esercizio(int codice) const return esc(i); } +bool TEsercizi_contabili::code2range(int codice, TDate& dal, TDate& al) const +{ + bool ok = exist(codice); + if (ok) + { + const TEsercizio& e = esercizio(codice); + dal = e.inizio(); + al = e.fine(); + } + else + { + ok = codice > 2000; + if (ok) + { + dal = TDate(1, 1, codice); + al = TDate(31, 12, codice); + } + else + dal = al = TDate(); + } + return ok; +} + const char* iva2name(TipoIVA iva) { const char* i; diff --git a/cg/cglib01.h b/cg/cglib01.h index 6301573c9..bba2aae4c 100755 --- a/cg/cglib01.h +++ b/cg/cglib01.h @@ -61,6 +61,7 @@ public: int last() const; int last_mag() const; bool exist(int codice) const; + bool code2range(int codice, TDate& dal, TDate& al) const; TEsercizi_contabili(); virtual ~TEsercizi_contabili() {}