campo-sirio/cg/cglib03.cpp
alex 657dd8b432 Patch level : xx.7.054
Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
Riportata la versione 1.7 patch 054 sul main trunk


git-svn-id: svn://10.65.10.50/trunk@9658 c028cbd2-c16b-5b4b-a496-9718f37d4682
2001-05-01 08:17:07 +00:00

141 lines
3.4 KiB
C++
Executable File

#ifndef __CGLIB03_H
#include "cglib03.h"
#endif
///////////////////////////////////
// classe TInteressi_IVA_table //
// per la lettura versamenti e //
// e interessi IVA dalla tabella //
///////////////////////////////////
TInteressi_IVA_table::TInteressi_IVA_table() : TTable("%VER")
{
}
TInteressi_IVA_table::~TInteressi_IVA_table()
{
}
int TInteressi_IVA_table::read(int anno, int mese)
{
TString16 k;
k.format("%04d%02d",anno,mese);
zero();put("CODTAB",k);
if (TTable::read(_isgteq) == NOERR)
{
TString16 cod = TTable::get("CODTAB");
if (cod > k)
if (prev() != NOERR)
zero();
}
else
if (last() != NOERR)
zero();
return status();
}
real TInteressi_IVA_table::get(int what)
{
TString16 fieldname;
fieldname.format("R%d",what);
return get_real(fieldname);
}
///////////////////////////////////////////////
// TRigaiva_array
// Tabella per il calcolo degli imponibili Iva
///////////////////////////////////////////////
bool TRigaiva_array::add_riga(const real& imponibile, const real& imposta, const real& imponibilep, const real& impostap, const char* codiva, const int tipodet, const int tipocr, bool intra, const int tipoatt)
{
bool found = FALSE;
for (int i = 0; i < items(); i++)
{
TRigaiva& r = riga(i);
if (r._codiva==codiva && tipodet==r._tipodet && tipocr==r._tipocr && tipoatt==r._tipoatt)
{
found = TRUE;
r._imponibile += imponibile;
r._imposta += imposta;
r._imponibilep += imponibilep;
r._impostap += impostap;
}
}
if (!found)
{
TRigaiva* r = new TRigaiva(imponibile,imposta,imponibilep,impostap,codiva,tipodet,tipocr,intra,tipoatt);
add(r);
}
return found;
}
bool TRiga_array::add_riga(const real& imponibile, const real& imposta, const real& implordo, const real& imponibilep, const real& impostap, const real& implordop, const char* codiva)
{
bool found = FALSE;
for (int i = 0; i < items(); i++)
{
TRiga& r = riga(i);
if (r._codiva==codiva)
{
found = TRUE;
r._imponibile += imponibile;
r._imposta += imposta;
r._implordo += implordo;
r._imponibilep += imponibilep;
r._impostap += impostap;
r._implordop += implordop;
}
}
if (!found)
{
TRiga* r = new TRiga(imponibile,imposta,implordo,imponibilep,impostap,implordop,codiva);
add(r);
}
return found;
}
bool TDociva_array::add_riga(const char* _descrdociva, const real& _importo,const int _natdoc)
{
bool found = FALSE;
for (int i = 0; i < items(); i++)
{
TDociva& r = riga(i);
if (r._descrdoc==_descrdociva)
{
found = TRUE;
if ((r._ndoc == 1)||(r._ndoc == 2)||(r._ndoc == 9))//||(r._ndoc == 4))
r._totdociva += _importo;
}
}
if (!found)
{
if ((_natdoc == 1)||(_natdoc == 2)||(_natdoc == 9))//||(_natdoc == 4))
{
TDociva* r = new TDociva(_descrdociva,_importo,_natdoc);
add(r);
}
}
return found;
}
bool TTipodoc_array::add_riga(const char* tipodoc, const char* descrdoc, const real& totdoc)
{
bool found = FALSE;
for (int i = 0; i < items(); i++)
{
TTipodoc& r = (TTipodoc&)(*this)[i];
if (r._tipodoc==tipodoc)
{
found = TRUE;
r._totdoc += totdoc;
}
}
if (!found)
{
TTipodoc* r = new TTipodoc(tipodoc,descrdoc,totdoc);
add(r);
}
return found;
}