#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() { _ver = new TTable("%VER"); } TInteressi_IVA_table::~TInteressi_IVA_table() { delete _ver; } int TInteressi_IVA_table::read(int anno, int mese) { TString k; k.format("%d%02d",anno,mese); _ver->zero();_ver->put("CODTAB",k); if (_ver->read(_isgteq) == NOERR) { TString cod = _ver->get("CODTAB"); if (cod > k) if (_ver->prev() != NOERR) _ver->zero(); } else if (_ver->last() != NOERR) _ver->zero(); return _ver->status(); } real TInteressi_IVA_table::get(int what) { TString fieldname; fieldname.format("R%d",what); return _ver->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; }