88 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| // classpim.h
 | |
| // funzioni ed enum per classificare i pim    
 | |
| 
 | |
| #ifndef __CLASSPIM_H
 | |
| #define __CLASSPIM_H
 | |
| 
 | |
| #ifndef __ISAM_H
 | |
| #include <isam.h>
 | |
| #endif
 | |
| 
 | |
| #ifndef __REAL_H
 | |
| #include <real.h>
 | |
| #endif
 | |
| 
 | |
| 
 | |
| // per ora ci si fotte di agenzie viaggio e di
 | |
| // regimi agricoli                                                              
 | |
| 
 | |
| enum tiporec { acq_norm = 0, vend_norm = 1,   // acquisti e vendite normali
 | |
|                acq_simp = 2, vend_simp  = 3,  // acq. e vend. sosp. imposta
 | |
|                bolle_doganali           = 4,  // bolle doganali (acquisti)
 | |
|                acq_beni_riv             = 5,  // acq. beni per rivendita
 | |
|                base_ventilazione        = 6,  // base calcolo per ventil.
 | |
|                corr_norm = 7, corr_simp = 8,  // corrispettivi n. e s. imp.
 | |
|                acq_beni_ammort          = 9,  // acq. beni ammortizz. detr.
 | |
|                acq_beni_ammort_nd       = 10, // beni ammort. non detraibili
 | |
|                acq_beni_leasing         = 11, // beni strum. acq in leasing
 | |
|                acq_amm_ultdetr          = 12, // beni amm. ult. detr 6%
 | |
|                acq_ind_op_es            = 13, // acq. indetr. su op.es.
 | |
|                acq_ind_pass_int         = 14, // passaggi interni
 | |
|                acq_ind_art_19           = 15, // indetr. art. 19
 | |
|                cess_amm                 = 16, // cessioni amministrative
 | |
|                vend_rimborso            = 17, // vendite valide per rimborso
 | |
|                acq_rimborso             = 18, // acq. validi per rimborso                 
 | |
|                acq_bd_ind_art_19        = 19  // acq. con tipo documento BD e tipo detr 9
 | |
|                  // ACHTUNG: se si aggiunge, cambiare sotto!!!
 | |
|                };
 | |
| 
 | |
| // questo serve nel cpp ma lo metto qua se no
 | |
| // non lo cambiero' mai quando serve                  
 | |
| const int MAX_TIPOREC = 19;
 | |
| 
 | |
| // --------------------------------------------------------------- 
 | |
| // "classifica" un record progressivo IVA passato per reference
 | |
| // mette l'imponibile in imp, l'imposta in iva, e in t mette 
 | |
| // un valore dell'enum di cui sopra, che dice di che tipo e'
 | |
| // l'importo ritornato   
 | |
| // ---------------------------------------------------------------
 | |
| // RITORNA TRUE SE VA CHIAMATA ANCORA CON LO STESSO PIM come
 | |
| // parametro (ovvero: ci sono altri valori da passare che fanno
 | |
| // parte dello stesso pim)                                      
 | |
| // ---------------------------------------------------------------           
 | |
| // mese, anno, attivita' vanno gestiti esternamente. Quando un pim
 | |
| // contiene dati che valgono per piu' di un caso, ritorna TRUE 
 | |
| // finche' i casi possibili non sono esauriti
 | |
| // ---------------------------------------------------------------      
 | |
| 
 | |
| // ------------------------------- ESEMPIO che fa sempre bene 
 | |
| // TTable pim("PIM");
 | |
| // while (pim.first(); !pim.eof(); pim.next())
 | |
| // {
 | |
| //    real    imponibile, imposta;
 | |
| //    tiporec tipo;
 | |
| //             
 | |
| //    // Escludi i pim che non vuoi (per attivita', anno, mese)
 | |
| //    if (questo_non_lo_volevo) continue; 
 | |
| //  
 | |
| //
 | |
| //    while (classify_pim(pim.curr(), imponibile, imposta, tipo))
 | |
| //    {
 | |
| //      switch(tipo)
 | |
| //      { 
 | |
| //         case acq_norm:
 | |
| //            acq_imponibile += imponibile;
 | |
| //            acq_imposta    += imposta;
 | |
| //            break;
 | |
| //         // eccetera
 | |
| //      }
 | |
| //    }
 | |
| // }                  
 | |
| //
 | |
| // CONTENTA?                                       ciao, f. :)
 | |
| // -----------------------------------------------------------
 | |
| 
 | |
| bool classify_pim(TRectype& pimr, real& imp, real& iva, tiporec& t, bool ts);
 | |
| 
 | |
| #endif                 
 |