campo-sirio/cg/cglib03.cpp

99 lines
2.3 KiB
C++
Executable File

// TRigaiva_array
// Tabella per il calcolo degli imponibili Iva
#include <array.h>
#include <real.h>
#include <strings.h>
#include "cglib03.h"
bool TRigaiva_array::add_riga(const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const real& imponibilep, const real& impostap)
{
bool found = FALSE;
for (int i = 0; i < items(); i++)
{
TRigaiva& r = (TRigaiva&)(*this)[i];
if ((r._codiva==codiva) && (tipodet==r._tipodet))
{
found = TRUE;
r._imponibile += imponibile;
r._imposta += imposta;
r._imponibilep += imponibilep;
r._impostap += impostap;
}
}
if (!found)
{
TRigaiva* r = new TRigaiva(imponibile,imposta,codiva,tipodet,imponibilep,impostap);
add(r);
}
return found;
}
bool TRiga_array::add_riga(const real& imponibile, const real& imposta, const char* codiva, const real& imponibilep, const real& impostap)
{
bool found = FALSE;
for (int i = 0; i < items(); i++)
{
TRiga& r = (TRiga&)(*this)[i];
if (r._codiva==codiva)
{
found = TRUE;
r._imponibile += imponibile;
r._imposta += imposta;
r._imponibilep += imponibilep;
r._impostap += impostap;
}
}
if (!found)
{
TRiga* r = new TRiga(imponibile,imposta,codiva,imponibilep,impostap);
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 = (TDociva&)(*this)[i];
if (r._descrdoc==_descrdociva)
{
found = TRUE;
if ((r._ndoc == 1)||(r._ndoc == 2)||(r._ndoc == 3)||(r._ndoc == 4))
r._totdociva += _importo;
}
}
if (!found)
{
if ((_natdoc == 1)||(_natdoc == 2)||(_natdoc == 3)||(_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;
}