Corretto calcolo esercizio precedente
git-svn-id: svn://10.65.10.50/trunk@2084 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
97e23efd9f
commit
7b91005f9e
@ -15,19 +15,34 @@
|
||||
// Calcola l'anno di esercizio di una data, e se prevesc != NULL calcola anche l'anno precedente
|
||||
// Certified 99%
|
||||
int date2esc(const TDate& d, int* prevesc)
|
||||
{
|
||||
if (prevesc) *prevesc = 0;
|
||||
{
|
||||
int anno = 0;
|
||||
TDate inizio, fine;
|
||||
|
||||
TTable esc("ESC");
|
||||
for (int err = esc.first(); err == NOERR; err = esc.next())
|
||||
{
|
||||
const TDate ia(esc.get("D0")); // Data inizio esercizio
|
||||
const TDate fa(esc.get("D1")); // Data fine esercizio
|
||||
TString16 sanno(esc.get("CODTAB")); sanno.cut(4);
|
||||
const int anno = atoi(sanno);
|
||||
if (d >= ia && d <= fa)
|
||||
return anno;
|
||||
if (prevesc) *prevesc = anno;
|
||||
inizio = esc.get_date("D0"); // Data inizio esercizio
|
||||
fine = esc.get_date("D1"); // Data fine esercizio
|
||||
if (d >= inizio && d <= fine)
|
||||
{
|
||||
const TString& sanno = esc.get("CODTAB").left(4);
|
||||
anno = atoi(sanno);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (prevesc != NULL)
|
||||
{
|
||||
if (anno != 0)
|
||||
{
|
||||
--inizio;
|
||||
*prevesc = date2esc(inizio);
|
||||
}
|
||||
else
|
||||
*prevesc = 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -577,22 +577,38 @@ const char* TPagamento::desc_tpr() const
|
||||
return o;
|
||||
}
|
||||
|
||||
const char* TPagamento::desc_tipo(int i) const
|
||||
const char* TPagamento::desc_tipo(int tipo, char ulc) const
|
||||
{
|
||||
int err = ~NOERR;
|
||||
const char* o;
|
||||
switch (i)
|
||||
{
|
||||
case 1: o = "Rimessa diretta o contanti"; break;
|
||||
case 2: o = "Tratta"; break;
|
||||
case 3: o = "Ricevuta bancaria"; break;
|
||||
case 4: o = "Cessione"; break;
|
||||
case 5: o = "Paghero'"; break;
|
||||
case 6: o = "Lettera di credito"; break;
|
||||
case 7: o = "Tratta accettata"; break;
|
||||
case 8: o = "Rapporti interban. diretti"; break;
|
||||
case 9: o = "Bonifici"; break;
|
||||
default: o = "Altro pagamento"; break;
|
||||
}
|
||||
|
||||
if (ulc > ' ')
|
||||
{
|
||||
const char key[] = { tipo+'0', ulc, '\0' };
|
||||
TTable clr("%CLR");
|
||||
clr.put("CODTAB", key);
|
||||
|
||||
err = clr.read();
|
||||
if (err == NOERR)
|
||||
o = clr.get("S0");
|
||||
}
|
||||
|
||||
if (err != NOERR)
|
||||
{
|
||||
switch (tipo)
|
||||
{
|
||||
case 1: o = "Rimessa diretta o contanti"; break;
|
||||
case 2: o = "Tratta"; break;
|
||||
case 3: o = "Ricevuta bancaria"; break;
|
||||
case 4: o = "Cessione"; break;
|
||||
case 5: o = "Paghero'"; break;
|
||||
case 6: o = "Lettera di credito"; break;
|
||||
case 7: o = "Tratta accettata"; break;
|
||||
case 8: o = "Rapporti interban. diretti"; break;
|
||||
case 9: o = "Bonifici"; break;
|
||||
default: o = "Altro pagamento"; break;
|
||||
}
|
||||
}
|
||||
return o;
|
||||
}
|
||||
|
||||
@ -1342,9 +1358,12 @@ void TPagamento::set_sheet(TSheet_field& sf, int sscad)
|
||||
ts.add("", 2);
|
||||
}
|
||||
ts.add(perc_rata(i).string(), 3); // 3 - Percentuale
|
||||
ts.add(tipo_rata(i), 4); // 4 - Tipo rata
|
||||
ts.add(ulc_rata(i), 5); // 5 - Ulteriore classificazione
|
||||
ts.add(desc_tipo(tipo_rata(i)), 6); // 6 - Descrizione tipo rata
|
||||
|
||||
const int tr = tipo_rata(i);
|
||||
const char uc = ulc_rata(i)[0];
|
||||
ts.add(tr, 4); // 4 - Tipo rata
|
||||
ts.add(uc, 5); // 5 - Ulteriore classificazione
|
||||
ts.add(desc_tipo(tr, uc), 6); // 6 - Descrizione tipo rata
|
||||
// 7,8,9,10 - Banche
|
||||
const bool paid = ratapagata(i);
|
||||
ts.add(paid ? "X" : "", 11); // 11 - Pagaya
|
||||
@ -1366,9 +1385,12 @@ void TPagamento::set_sheet(TSheet_field& sf, int sscad)
|
||||
scr += scad_rata(i);
|
||||
s.add(scr);
|
||||
s.add(perc_rata(i).string());
|
||||
s.add(tipo_rata(i));
|
||||
s.add(desc_tipo(tipo_rata(i)));
|
||||
s.add(ulc_rata(i));
|
||||
|
||||
const int tr = tipo_rata(i);
|
||||
const char uc = ulc_rata(i)[0];
|
||||
s.add(tr);
|
||||
s.add(uc);
|
||||
s.add(desc_tipo(tr, uc));
|
||||
}
|
||||
}
|
||||
else // new: set with 1 or 2 rates according to tpr
|
||||
@ -1385,9 +1407,12 @@ void TPagamento::set_sheet(TSheet_field& sf, int sscad)
|
||||
scr += scad_rata(i);
|
||||
s.add(scr);
|
||||
s.add(perc_rata(i).string());
|
||||
s.add(tipo_rata(i));
|
||||
s.add(desc_tipo(tipo_rata(i)));
|
||||
s.add(ulc_rata(i));
|
||||
|
||||
const int tr = tipo_rata(i);
|
||||
const char uc = ulc_rata(i)[0];
|
||||
s.add(tr);
|
||||
s.add(uc);
|
||||
s.add(desc_tipo(tr, uc));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,7 @@ public:
|
||||
const TString& name() const { return _name; }
|
||||
const TString& code() const { return _code; }
|
||||
const char* desc_tpr() const;
|
||||
const char* desc_tipo(int) const;
|
||||
const char* desc_tipo(int tipo, char ulc) const;
|
||||
|
||||
// giorni scadenza fissi, aggiunti poi
|
||||
void set_fixed_scad(int a, int ind) { _fixd[ind] = a; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user