// TRigaiva_array // Tabella per il calcolo degli imponibili Iva #include #include #include #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; }