99 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.2 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;
 | 
						|
}
 |